(PASS)break 和 continue 的區別


 

1  break; 

      while循環中,break是用於永久終止循環。即不執行本次循環中break后面的語句,直接跳出循環。 終止,跳出,結束循環(可以作用在任何地方)。也常與switch分支結構合用。
2 continue;
  while循環中,continue是用於終止本次循環。即本次循環中continue后面的代碼不執行,進行下一次循環的入口判斷。結束本次的循環,進入下一次的循環(只能運用到循環結構中)。

舉例1:break退出循環

public static void main(String[] args) {
         int i = 0;
            while (i <= 10)
            {
                if (i == 5){
                    break;
                }
                System.out.println("      "+i+"\n");
                i++;
            }
    }

輸出結果: 

舉例2:continue退出當前循環,繼續下次循環

public static void main(String[] args) {
        int i = 0;
        while (i <= 10)
        {
            i = i + 1;
            if (i == 5){
                continue;
            }
            System.out.println("      "+i+"\n");
        }
       
    }

輸出結果:

有個問題: 如果是嵌套循環呢?

嵌套循環中break、continue的用法

一.break語句為退出當前循環,在嵌套循環中結果如下:

//break嵌套循環,退出當前內部循環
    public static void main(String[] args) {
        int num= 0;
        for(int i=0;i<5;i++){
            System.out.println("執行外部循環開始");
              for(int j=0;j<5;j++){
                    if  (i==2&&j==2){
                        System.out.println("i:"+i+",j:"+j);
                          break ;
                }
                num++;
                System.out.println("num:"+num);
              }
              
              System.out.println("執行外部循環結束");
        }
        System.out.println(num);
    }

 

 

 

 break只退出最內層循環,若想退出所有循環請和label語句連用,從何處結束循環:

//退出所有循環請和label語句連用
public
static void main(String[] args) { int num=0; outermost: for(int i=0;i<5;i++){ System.out.println("執行外部循環開始"); for(int j=0;j<5;j++){ if (i==2&&j==2){ System.out.println("i:"+i+",j:"+j); break outermost; } num++; System.out.println("num:"+num); } System.out.println("執行外部循環結束"); } System.out.println(num); //12 }

二、continue語句退出當次循環,嵌套結果:

//continue語句退出當次循環,嵌套結果:
    public static void main(String[] args) {
        int num=0;
        for(int i=0;i<5;i++){
             System.out.println("執行外部循環開始");
              for(int j=0;j<5;j++){
                    if  (i==2&&j==2){                        
                        System.out.println("i:"+i+",j:"+j);
                        System.out.println("num:"+num);
                        continue;
                }
                num++;
                System.out.println("i:"+i+",j:"+j+",num:"+num);
              }
             System.out.println("執行外部循環結束");
        }
        System.out.println(num);   //24
    }

continue語句和label語句連用,從何處繼續循環:

//continue語句和label語句連用,從何處繼續循環:
    public static void main(String[] args) {
        int num=0;
        outermost:
        for(int i=0;i<5;i++){
            System.out.println("執行外部循環開始");
              for(int j=0;j<5;j++){
                if (i==2&&j==2){  
                        System.out.println("i:"+i+",j:"+j);
                        System.out.println("num:"+num);
                        continue outermost;
                }
                 num++;
                 System.out.println("i:"+i+",j:"+j+",num:"+num);
            }
            System.out.println("執行外部循環開始");
        }
        System.out.println(num);     //22
    }

 參考文檔: https://www.cnblogs.com/lodadssd/p/6238370.html 


免責聲明!

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



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