1.1 while 循環語句
while 語句也稱為條件判斷語句. 循環方式 : 利用一個條件來控制是否要反復執行這個語句.
語法 :
1 while(條件表達式){ 2 執行語句 3 }
當條件表達式的返回值為真時,執行 " {} " 中的語句,當執行完 " {} " 中的語句后,重新判斷條件表達式的返回值,直到表達式返回的結果為假時,退出循環.
注意:
不能在while表達式的括號后面不加 " {} " !!!
如 :
1 while(x==5); 2 System.out.println("x的值為5");
這時程序會認為要執行一條空語句,而進入無限循環,Java編譯器不會報錯.
1.2 do...while 循環語句
do...while 循環語句與while循環語句相類似.
兩者區別 :
while語句為先判斷條件是否成立再執行循環體 , 而 do...while 循環語句則先執行一次循環會后,再判斷條件是否成立 (即do...while循環語句中"{}"中的程序段至少被執行一次).
此外還應該注意,do...while語句在結尾處多一個分號 ";" .
語法:
1 do { 2 執行語句 3 } 4 while(條件表達式);
1.3 for 循環語句
1.for 語句
語法 :
1 for (表達式1 ; 表達式2 ; 表達式3) { 2 語句序列 3 } 4 表達式1 : 初始化表達式,負責完成變量的初始化. 5 表達式2 : 循環條件表達式,值為boolean型的表達式,指定循環條件. 6 表達式3 : 循環后操作表達式,負責修整變量,改變循環條件.
技巧點 :
在編程時,有時會使用for循環的特殊語法格式來實現無限循環,語法格式為:
1 for (;;){ 2 ... 3 } 4 對於這種無限循環,可以通過break語句跳出循環.例如: 5 for(;;){ 6 if(x<20) 7 break; 8 x++; 9 }
2.foreach 語句
for循環的語法糖.
語法:
1 for(元素變量 x : 遍歷對象 obj){ 2 引用了 x 的java語句; 3 }
循環控制語句:
1.1 break 語句
不僅break語句可以跳出switch結構 , 也可以用break語句跳出當前循環體,從而中斷當前循環.
例如:
public class BreakTest{ public static void main(String[] args){ for(int i = 0 ; i <= 100 ; i++){ System.out.println(i); if( i == 6){ break; // 如果 i 等於6則跳出循環 } } System.out.println("--end--"); } }
但是,循環嵌套的情況下, break語句將只會使程序流程跳出包含它的最內層的循環結構即只跳出一層循環.
當然Java提供了"標簽"功能,使一次跳出的最外層循環.
語法:
1 標簽名 : 循環體 { 2 break 標簽名; 3 } 4 標簽名: 任意標識符. 5 循環體: 任意循環語句. 6 break標簽名: break跳出指定的循環體,此循環體的標簽名必須與break的標簽名一致.
例如:
1 public class BreakOutsideNested { 2 public static void main(String[] args){ 3 Loop: for(int i = 0; i < 3; i++){ 4 for(int j = 0; j < 6; j++){ 5 if (j == 4){ 6 break Loop; 7 } 8 System.out.println("i=" + i + "j=" + j); 9 } 10 } 11 } 12 }
1.2 continue 語句
continue 語句是對break語句的補充. continue 不是立即跳出循環體,而是跳過本次循環結束前的語句,回到循環的條件測試部分,重新開始執行循環. 在for循環中遇到continue后,首先執行循環的增量部分,然后進行條件測試.在while和do...while循環中,continue語句使控制直接回到條件測試部分.
例如:
1 public class ContinueTest{ 2 public static void main(String[] args){ 3 for(int i = 1; i < 20; i ++){ 4 if(i % 2 == 0){ 5 continue; // 跳到下一循環 6 } 7 System.out.println(" i "); 8 } 9 } 10 }
與break一樣,continue也支持標簽功能,語法:
1 標簽名 : 循環體 { 2 continue 標簽名; 3 } 4 標簽名 : 任意標識符. 5 循環體 : 任意循環體. 6 continue 標簽名 : continue跳出指定的循環體,此循環體的標簽名必須與continue的標簽名一致.