在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
