程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java編程那些事兒38—break和continue語句

Java編程那些事兒38—break和continue語句

編輯:關於JAVA

5.5 break和continue語句

break和continue語句是和循環語句緊密相關的兩種語句。其中break關鍵字的意思是中斷、打斷,continue關鍵字的意思是繼續。使用這兩個關鍵字可以調節循環的執行。

5.5.1break語句

break語句在前面的switch語句中已經介紹過,功能的話是中斷switch語句的執行,在循環語句中,break語句的作用也是中斷循環語句,也就是結束循環語句的執行。

break語句可以用在三種循環語句的內部,功能完全相同。下面以while語句為例來說明break語句的基本使用及其功能。

示例代碼:

int i = 0;
while(i < 10){
 i++;
 if(i == 5){
   break;
 }
}

則該循環在變量i的值等於5時,滿足條件,然後執行break語句,結束整個循環,接著執行循環後續的代碼。

在循環語句中,可以使用break語句中斷正在執行的循環。

在實際的代碼中,結構往往會因為邏輯比較復雜,而存在循環語句的嵌套,如果break語句出現在循環嵌套的內部時,則只結束break語句所在的循環,對於其它的循環沒有影響,示例代碼如下:

for(int i = 0;i < 10;i++){
 for(int j = 0;j < 5;j++){
  System.out.println(j);
  if(j == 3){
   break;
  }
 }
}

則該break語句因為出現在循環變量為j的循環內部,則執行到break語句時,只中斷循環變量為j的循環,而對循環變量為i的循環沒有影響。

在上面的示例代碼中,如果需要中斷外部的循環,則可以使用語法提供的標簽語句來標識循環的位置,然後跳出標簽對應的循環。示例代碼如下:

lable1:
for(int i = 0;i < 10;i++){
 for(int j = 0;j < 5;j++){
  System.out.println(j);
  if(j == 3){
   break label1;
  }
 }
}

說明:這裡的label1是標簽的名稱,可以為Java語言中任意合法的標識符,標簽語句必須和循環匹配使用,使用時書寫在對應的循環語句的上面,標簽語句以冒號結束。如果需要中斷標簽語句對應的循環時,采用break後面跟標簽名的方式中斷對應的循環。則在該示例代碼中break語句中斷的即循環變量為i的循環。

同樣的功能也可以使用如下的邏輯實現:

boolean b = false;
for(int i = 0;i < 10;i++){
 for(int j = 0;j < 5;j++){
  System.out.println(j);
  if(j == 3){
   b = true;
   break;
  }
 }
 if(b){
  break;
 }
}

該示例代碼中,通過組合使用2個break以及一個標識變量,實現跳出外部的循環結構。

5.5.2 continue語句

continue語句只能使用在循環語句內部,功能是跳過該次循環,繼續執行下一次循環結構。在while和do-while語句中continue語句跳轉到循環條件處開始繼續執行,而在for語句中continue語句跳轉到迭代語句處開始繼續執行。

下面以while語句為例,來說明continue語句的功能,示例代碼如下:

int i = 0;
while(i < 4){
 i++;
 if(i == 2){
  continue;
 }
 System.out.println(i);
}

則該代碼的執行結果是:

1
3
4

在變量i的值等於2時,執行continue語句,則後續未執行完成的循環體將被跳過,而直接進入下一次循環。

在實際的代碼中,可以使用continue語句跳過循環中的某些內容。

和前面介紹的break語句類似,continue語句使用在循環嵌套的內部時,也只是跳過所在循環的結構,如果需要跳過外部的循環,則需要使用標簽語句標識對應的循環結構。示例代碼如下:

lable1:
for(int i = 0;i < 10;i++){
 for(int j = 0;j < 5;j++){
   System.out.println(j);
   if(j == 3){
    continue label1;
   }
 }
}

這樣在執行continue語句時,就不再是跳轉到j++語句,而是直接跳轉到i++語句。

5.5.3 小結

在實際的代碼中,可以根據需要使用break和continue語句調整循環語句的執行,break語句的功能是結束所在的循環,而continue語句的功能是跳過當次循環未執行的代碼,直接執行下一次循環。

文章來源:http://blog.csdn.net/Mailbomb/archive/2008/06/18/2561368.aspx

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved