1. 程式人生 > >java-迴圈語句

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