在java裏面的循環語句大體分爲四種:for循環、while循環、do...while循環和加強for循環。下面進行一一講解。java
for循環,for循環是java代碼中最爲常見的循環形式,其語法格式爲:數組
for(表達式1;表達式2;表達式3){框架
循環的代碼塊;spa
}code
表達式1:通常做爲變量的初始化,定義變量,並賦初始化值。對象
表達式2:做爲判斷語句(條件語句)blog
表達式3:在循環的代碼塊運行結束以後,再運行的代碼,通常做爲改變變量的值。for循環
for循環中的執行順序:表達式1-->表達式2--> 循環的代碼塊-->表達式3class
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