1. 程式人生 > >java學習之路之javaSE基礎3

java學習之路之javaSE基礎3

區別 之路 函數重載 while循環 a + b 內存 sum get 錯誤

所有代碼都未經測試。。

1:for循環的格式?
for循環格式:
for(初始化表達式;條件表達式;循環後的操作表達式) {
循環體;
}
執行流程:
* a:執行初始化語句
* b:執行判斷條件語句,看其返回值是true還是false
* 如果是true,就繼續執行
* 如果是false,就結束循環
* c:執行循環體語句;
* d:執行循環後的操作表達式
* e:回到B繼續。

用for循環完成如下案例

求1到10之間的數據之和
int sum = 0 ;
for(int i=1;i<=10;i++){
sum += i;
}
System.out.println(sum);

求1到100之間的偶數之和
int sum = 0;
for(int i=1;i<=100;i++){ //for(int i=0;i<=100;i+=2)
if(i % 2 == 0 ){
sum += i;
}
}
System.out.println(sum);

求1到100之間的奇數之和
int sum = 0;
for(int i=1;i<=100;i++){ //for(int i=1;i<=100;i+=2)
if(i % 2 != 0 ){
sum += i;
}
}
System.out.println(sum);

打印水仙花數:
* 所謂的水仙花數是指一個三位數,其各位數字的立方和等於該數本身。
* 舉例:153就是一個水仙花數。
* 153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153
* 難點就是如何獲取到每個三位數的每個位上的操作數
for(int i=100;i<=999;i++){ //設置所有水仙花數的範圍100~999
int ge = i % 10; //利用取模操作符獲取到各個位上的數
int shi = i / 10 % 10;
int bai = i / 10 / 10 % 10;
if(ge*ge*ge+shi*shi*shi+bai*bai*bai == i){
System.out.println(i);
}
}

統計水仙花數
int sum = 0;
for(int i=100;i<=999;i++){ //設置所有水仙花數的範圍100~999
int ge = i % 10; //利用取模操作符獲取到各個位上的數
int shi = i / 10 % 10;
int bai = i / 10 / 10 % 10;
if(ge*ge*ge+shi*shi*shi+bai*bai*bai == i){
//System.out.println(i);
sum += 1;
}
}
System.out.println(sum);

九九乘法表
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}

2:while循環的格式?要能看懂執行流程
while循環的基本格式:
while(判斷條件語句) {
循環體語句;
}

while循環完整格式:
初始化語句;
while(判斷條件語句) {
循環體語句;
控制條件語句;
}

用while循環完成如下案例
求1到100的和
int sum = 0;
int num = 1;
while(num <=100){
sum += num;
num++;
}
System.out.println(sum);

紙張折疊成珠穆朗瑪峰高度的次數,隨意寫的。。
int count = 0;
int num = 1;
while(num <= 10000){
count++;
num *= 2;
}
System.out.println(count);

循環結構do...while語句的格式:
*
do {
循環體語句;
}while(判斷條件語句);

完整格式;
初始化語句;
do {
循環體語句;
控制條件語句;
}while(判斷條件語句);

執行流程:
* a:執行初始化語句
* b:執行循環體語句;
* c:執行控制條件語句
* d:執行判斷條件語句,看其返回值是true還是false
* 如果是true,就繼續執行
* 如果是false,就結束循環
* e:回到b繼續。

三種循環語句的區別:
* do...while循環至少執行一次循環體。
* 而for,while循環必須先判斷條件是否成立,然後決定是否執行循環體語句。
* for循環和while循環的區別:
如果你想在循環結束後,繼續使用控制條件的那個變量,用while循環,否則用for循環。
不知道用誰就用for循環。因為變量及早的從內存中消失,可以提高內存的使用效率。
一定要註意控制條件語句控制的那個變量的問題,不要弄丟了,否則就容易死循環。
兩種最簡單的死循環格式
* while(true){...}
* for(;;){...}


3:break,continue和return分別有什麽用?
* return是結束方法;
* break是跳出循環;只能在switch和循環中使用。
* continue是終止本次循環繼續下次循環;只能在循環中使用。

4:函數的概念?函數的格式?格式的解釋說明
完成特定功能的代碼塊。
修飾符 返回值類型 方法名(參數類型 參數名1,參數類型 參數名2...) {
方法體語句;
return 返回值;
}
方法的格式說明:
* 修飾符:目前就用 public static。後面我們再詳細的講解其他的修飾符。
* 返回值類型:就是功能結果的數據類型。
* 方法名:符合命名規則即可。方便我們的調用。
* 參數:
* 實際參數:就是實際參與運算的。
* 形式參數;就是方法定義上的,用於接收實際參數的。
* 參數類型:就是參數的數據類型
* 參數名:就是變量名
* 方法體語句:就是完成功能的代碼。
* return:結束方法的。
* 返回值:就是功能的結果,由return帶給調用者。

5:函數的調用
A:明確返回值類型的函數調用
* a:單獨調用,一般來說沒有意義,所以不推薦。
* b:輸出調用,但是不夠好。因為我們可能需要針對結果進行進一步的操作。
* c:賦值調用,推薦方案。
B:void類型的函數調用
* 單獨調用
* 輸出調用(錯誤)
* 賦值調用(錯誤)

6:函數的練習:
A:求兩個數據之和
public static int add(int a,int b){
int sum = a + b;
return sum;
}

B:判斷兩個數據是否相等
public static boolean isEquals(int a,int b){
boolean bl = a == b;
return bl;
}

C:獲取兩個數中較大的值
public static int getMaxNum(int a,int b){
int maxNum = (a>b)? a:b;
return maxNum;
}

D:打印m行n列的星形矩形
Scanner sc = new Scanner();
int m = sc.nextInt();
int n = sc.nextInt();
printMN(m,n);
public static void printMN(int m,int n){
for(int i=1;i<=m;i++){
for(int j=1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
}

E:打印nn乘法表
Scanner sc = new Scanner();
int m = sc.nextInt();
int n = sc.nextInt();
public static void printNN(int m,int n){
for(int i=1;i<=m;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}

7:什麽是函數重載?
在同一個類中,方法名相同,參數列表不同。與返回值類型無關。
參數列表不同:
* 參數個數不同
* 參數類型不同
* 參數的順序不同(算重載,但是在開發中不用)

java學習之路之javaSE基礎3