java-迴圈語句
在java裡面的迴圈語句大致分為四種:for迴圈、while迴圈、do...while迴圈和增強for迴圈。下面進行一一講解。
for迴圈,for迴圈是java程式碼中最為常見的迴圈形式,其語法格式為:
for(表示式1;表示式2;表示式3){
迴圈的程式碼塊;
}
表示式1:一般作為變數的初始化,定義變數,並賦初始化值。
表示式2:作為判斷語句(條件語句)
表示式3:在迴圈的程式碼塊執行結束之後,再執行的程式碼,一般作為改變變數的值。
for迴圈中的執行順序:表示式1-->表示式2--> 迴圈的程式碼塊-->表示式3
for迴圈的流程圖:
事例程式碼1:
1 public void method_1(){ 2 //使用for迴圈,在控制檯輸出1到100的數 3 for(int i = 1;i <= 100;i++){ 4 //在控制檯輸出i,i即使從1一直到100 5 System.out.println(i); 6 } 7 }
上面的程式碼,一開始i的值為1,每次執行完,i自增1,根據判斷條件,直到i大於100,才停止,沒有停止之前,i一直增加並輸出。
while迴圈:
定義變數並初始化值;
while(表示式1){
迴圈的程式碼塊;
表示式2(改變變數的值)
}
注意:1)在使用while迴圈之前,一定要定義變數並初始化值,否則, 會報錯。這個變數是在while的條件判斷。
2)在迴圈體裡面,也就是while迴圈的大括號裡面,在迴圈的程式碼塊後面一定要記得寫改變變數的值,否則會出現死迴圈。
while迴圈的流程圖:
事例程式碼2:
1 public void method_2(){ 2 //定義一個變數,並初始化值; 3 int i = 1; 4 //使用while迴圈程式碼。輸出1到100 5 while(i <= 100){ 6 System.out.println(i); 7 i++; 8 } 9 }
以上是while迴圈的程式碼,注意的是第3行程式碼和第7行程式碼,雖然不屬於while迴圈的語法結構,但是如果少了,會報錯或者死迴圈。
do..while迴圈:
do...while迴圈也是一個迴圈,和while相似,但又有區別,先看do...while迴圈的語法:
定義變數並初始化值;
do{
迴圈的程式碼塊;
改變變數的值;
}while(表示式)
注意:1)在寫do...while迴圈之前,一定要定義變數並初始化值,這個變數用於while裡面的判斷。
2)在do的大括號裡面,除了迴圈的程式碼塊,需要在後面加上改變變數的值。
do...while迴圈的流程圖:
事例程式碼3:
1 public void method_3(){ 2 //定義一個變數,並初始化值; 3 int i = 1; 4 //使用do...while迴圈,輸出1到100 5 do{ 6 System.out.println(i); 7 i++; 8 }while(i <= 100) 9 }
上面的程式碼注意的是第3行和第7行,如果少了會出現報錯或者死迴圈。
對於while迴圈和do...while迴圈,語法結構都非常的相似,下面說一下while迴圈和do...while迴圈的區別:
從語法和流程圖可以看出,while是先判斷,只有當表示式結果正確的情況下,才會執行迴圈的內容,而do...while迴圈是先執行迴圈的內容,再進行判斷,這這樣,當一開始條件就不滿足的情況下,do...while至少會執行一次迴圈的程式碼,而while迴圈則一次都不執行。
增強for迴圈:這種迴圈適用於物件才能使用,比如陣列,集合框架等。
語法:for(資料型別 從物件中取出的元素 :物件名){
}
事例程式碼4:
1 public void method_4(){ 2 //定義一個數組,資料型別為int 3 int[] num = {1,2,3,4,5,6,7,8}; 4 //使用增強for迴圈,遍歷出num陣列中的所有元素。 5 for(int i : num){ 6 //for迴圈中的i值,表示的是陣列中的元素,而不是下標,這個一定要注意 7 System.out.println(i); 8 } 9 }
跳出迴圈的兩種方式:
break:跳出整個迴圈,當在迴圈的程式碼中,如果讀取到了程式碼break;則結束整個迴圈。
continue:跳出本次迴圈,繼續下一次迴圈,在迴圈的程式碼中,如果讀取到了continue程式碼,則跳出本次迴圈,也就是迴圈體中的continue程式碼以下的所有程式碼將不再執行,而是從頭開始下一次的迴圈。
這兩者的最大區別在於:break是不再執行迴圈程式碼,跳出的是整個迴圈,而continue依然在迴圈體系中執行,只是本次的程式碼 不再執行而已。
事例程式碼5:迴圈輸出從1到10,當遇到了5之後,則結束迴圈,使用break;
1 public void method_5(){ 2 //使用for迴圈,從1到10輸出 3 for(int i = 1;i <= 10;i++){ 4 //如果遇到了5,則結束迴圈: 5 if(i % 5 == 0){ 6 break; 7 } 8 System.out.println(i); 9 } 10 }
以上程式碼:因為遇到5,則執行break;,結束整個迴圈,則最終控制檯輸出的為:1,2,3,4
事例程式碼6:迴圈輸出從1到10,當遇到5之後,則跳出本次迴圈,使用continue
1 public void method_6(){ 2 //使用for迴圈,從1到10輸出 3 for(int i = 1;i <= 10;i++){ 4 //判斷,如果i等於5的時候,則執行continue程式碼 5 if(i % 5 == 0){ 6 continue; 7 } 8 System.out.println(i); 9 } 10 }
以上程式碼:因為遇到5,則執行continue;跳出當次迴圈,繼續下一次的迴圈,則最終控制檯輸出的為:1,2,3,4,6,7,8,9,10