1. 程式人生 > >學習Java之對關鍵字break和continue的一點理解

學習Java之對關鍵字break和continue的一點理解

我們都知道關鍵字 ——  

  • break 預設跳出當前距離此 break 最近的一個 for / while 迴圈語句塊 或  switch 開關語句塊;

例-1:跳出迴圈

for(;;) {
    while(true) {
        break;//退出離此break最近的包裹著此break的一層迴圈(這裡是while),去執行while外面的程式碼,此處是for迴圈  ** 重要註釋
    }
}

例-2:跳出switch開關語句

enum Signal{
    Green, Yellow, Red
}

Signal signal = Signal.Green;
Signal color = null;
switch(signal) {
    case Green : color = Signal.Green;
             break; // 退出switch

    case Yellow : color = Signal.Yellow;
                  break; // 退出switch

    case Red : color = Signal.Red;
               break; // 退出整個switch

    default : break; // 退出整個switch
}
  • continue 使用在 迴圈條件中的關鍵字(使用場合)continue 使 它後面的事務指令程式碼被跳過執行(不執行),直接去執行距離 此continue 最近的且包裹著它的 迴圈語句塊的迴圈條件判斷語句 —— 即迴圈關鍵字 - while / for 後面緊跟著的括號中的邏輯判斷語句此語句為真(true),則繼續執行這個迴圈;此語句為假(false),則終止當前要執行的迴圈語句塊,去執行緊接著此迴圈語句塊的後面的語句指令

例-3:continue 條件滿足 - 繼續執行正在執行的迴圈語句塊的下一次的迴圈操作;tiao條件不滿足 - 終止此迴圈

boolean flag = true;

//迴圈條件滿足的情形
while(flag) {
    if(flag) {
        flag = true; //
        continue; // 跳過while迴圈語句塊中在此continue後面的語句,去直接執行while的迴圈條件判斷語句
        flag = false; // 此句及後面的輸出語句將被跳過執行
    }
    System.out.println("aaaa");
}

boolean tag = true;
//不能繼續迴圈,終止當前迴圈,去執行此迴圈語句塊後面的語句
for(;;tag) {
    if(tag) {
        tag = false; //終止迴圈的條件
        continue; // 跳過 for 迴圈語句塊中在此continue後面的語句,去直接執行 for 的迴圈條件判斷語句     
        tag = true; // 此句及後面的輸出語句將被跳過執行
    }
    System.out.println("aaaa");
}

//跳出 for迴圈體 後,被執行的指令語句
System.out.println("Hello, I have been executed....");

這裡的例子中的註釋,更形象的說明的 continue / break 的作用,應注意閱讀。

 

continue 和 beak 還能 跳到 指定的 標誌(語法——自定義名+冒號(:),如 - condition:   )

先簡單寫點 continue 和 break 的主要區別:使用的場景不同

  • break - 可以使用在 for/while迴圈和switch開關語句塊中;
  • continue - 只能用在 for/while迴圈中。

實際上 continue 和 break 就相當於 已經有預設條件的 goto 指令。