Java中的break和continue 區別


break可以離開當前switch、for、while、do while的程序塊,並前進至程序塊后下一條語句,在switch中主要用來中斷下一個case的比較。在for、while與do while中,主要用於中斷目前的循環執行。

注意:循環嵌套時只會跳出帶break那層的循環,例如

 1 class test{
 2     public static void main(String[] args) {
 3             for (int i = 0; i < 3; i++) {
 4                 for (int j = 0; j < 4; j++) {
 5                     if (j == 3) {
 6                         break;
 7                     }
 8                     System.out.println("j" + j);
 9                 }
10                 System.out.println("i" + i);
11             }
12 
13     }
14 }

只會跳出內層循環,j=3那層沒有,結果如下:

 1 j0
 2 j1
 3 j2
 4 i0
 5 j0
 6 j1
 7 j2
 8 i1
 9 j0
10 j1
11 j2
12 i2

continue的作用與break類似,主要用於循環,所不同的是break會結束程序塊的執行,而continue只會結束其之后程序塊的語句,並跳回循環程序塊的開頭繼續下一個循環,而不是離開循環,這個一般比較好理解。

 

break與continue還可以配合標簽使用,例如本來break只會離開for循環,設定標簽與程序塊,則可以離開整個程序塊。下面來進行示范:

 1 public class BreakTest {
 2     public static void main(String[] args) {
 3         back : {
 4             for(int i = 0; i < 10; i++) {
 5                 if(i == 9) {
 6                     System.out.println("break");
 7                      break back;
 8                 }
 9             }
10             System.out.println("test");
11         }
12     }
13 }

程序的執行結果會顯示break;back是個標簽,當break back;時,返回至back標簽處,之后整個back程序塊不執行而跳過,所以這個程序System.out.println("test");不會被執行。

事實上continue也有類似的用法,只不過標簽只能設定在for之前,看下面的例子:

 1 public class ContinueTest {
 2 
 3     public static void main(String[] args) {
 4         back1:
 5         for(int i = 0; i < 10; i++){
 6             back2:
 7             for(int j = 0; j < 10; j++) {
 8                 if(j == 9) {
 9                     continue back1;
10                 }
11             }
12             System.out.println("test");
13         }
14     }
15 }

continue配合標簽,可以自由地跳至任何一層for循環,您可以試試continue back1與continue back2的不同。設定back1時,System.out.println("test");不會被執行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM