JAVA的學習日記8
阿新 • • 發佈:2020-09-12
Java For迴圈
- 雖然所有迴圈結構都可以用while或者do...while來表示,但是Java提供了另外一種語句-for迴圈,使一些迴圈結構變得更加簡單
- for迴圈語句是支援迭代的一種通用結構,是最有效、最靈活的迴圈結構
- for迴圈執行的次數是在執行前就確定的。
- 語法:
for(初始化;布林表示式;更新){
//程式碼語句
}
練習:計算0到100之間的奇數和偶數的和
package com.cdoudou.struct; public class ForDemo01 { public static void main(String[] args) { int a = 1;//初始化條件 while(a < 100){//條件判斷 System.out.println(a);//迴圈體 a += 2;//迭代 } System.out.println("while迴圈結束"); //初始化;條件判斷;迭代 for (int i = 0; i < 100; i+=2) { System.out.println(i); } System.out.println("for迴圈結束"); /* 關於for迴圈需要注意的地方: 是先執行初始化步驟,可以宣告一種型別,但可以初始化一個或多個迴圈控制變數,也可以是空語句 然後,檢查布林表示式的值。如果為true,迴圈體被執行,如果為false,迴圈終止,開始執行迴圈體後面的語句。 執行一次迴圈後,更新迴圈控制變數(迭代因子控制迴圈變數的增減) 再次檢測布林表示式,迴圈執行上面的過程 */ } }
練習:用while或for迴圈輸出1-1000之間能被5整除的數,並且每行輸出3個
package com.cdoudou.struct; public class ForDemo02 { public static void main(String[] args) { //用while或for迴圈輸出1-1000之間能被5整除的數,並且每行輸出3個 for (int i = 0; i < 1000; i++) { if(i % 5 == 0){ System.out.print(i + "\t"); //注意這裡不能寫成'\t' } if(i % (5 * 3) == 0){ System.out.println(); // System.out.print(); 表示為不換行的意思,要換行加一個"\n" } } } }
練習:列印九九乘法表
package com.cdoudou.struct; public class ForDemo03 { public static void main(String[] args) { 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(); } } }
增強for迴圈
- 陣列的時候重點使用
- Java5引入了一種主要用於陣列或集合的增強型for迴圈
- Java增強for迴圈語法格式如下:
for(宣告語句:表示式){
//程式碼語句
}
- 宣告語句:宣告新的區域性變數,該變數的型別必須和陣列元素的型別匹配。其作用域限定在迴圈語句塊,其值與此時陣列元素的值相等。
- 表示式:表示式是要訪問的陣列名,或者是返回值為陣列的方法
package com.cdoudou.struct;
public class ForDemo04 {
public static void main(String[] args) {
//定義一個數組
int[] numbers = {10, 20, 30, 40, 50};
for(int i = 0; i < 5; i ++){
System.out.println(numbers[i]);
}
System.out.println("=================");
//遍歷陣列元素
for(int x:numbers){
System.out.println(x);
}
}
}
遍歷時也很方便,但是不能用下標取值
break和continue
-
break在任何迴圈語句的主體部分,均可用break控制迴圈的流程。break用於強行退出迴圈,不執行迴圈中剩餘的語句。(break語句也可以switch語句中使用)
-
continue語句用在迴圈語句體中,用於終止某次迴圈過程,即跳過迴圈體尚未執行的語句,接著進行下一次是否執行迴圈的判定
-
關於goto關鍵字
goto關鍵字很早就在程式設計語言中出現。儘管goto仍是Java的一個保留字,但並未在語言中得到正式使用;Java沒有goto,然而,在break和continue的身上,仍然可以看出一些goto的影子---帶標籤的break和continue -
標籤是指後面跟一個冒號的識別符號,例如:label:
-
對Java來說唯一用到標籤的地方是在迴圈語句之前。而在迴圈之前設定標籤的唯一理由是:希望在其中巢狀另一個迴圈,由於break和continue關鍵字通常只中斷當前迴圈,但若隨同標籤使用,它們就會中斷到存在標籤的地方
列印三角形
package com.cdoudou.struct;
public class TestDemo {
//列印三角形 5行
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for(int j = 5; j >= i; j --){
System.out.print(" ");
}
for(int j = 1; j <= i; j ++){
System.out.print("*");
}
for(int j = 1; j < i; j ++){
System.out.print("*");
}
System.out.println();
}
/*
*
***
*****
*******
*********
*/
}
}