迴圈控制語句中斷和繼續

迴圈控制語句用於從正常順序更改執行流程。當執行離開作用域時,將銷燬在該作用域中建立的所有自動物件。breakcontinue 是迴圈控制語句。

break 語句終止迴圈而無需進一步考慮。

for (int i = 0; i < 10; i++)
{
    if (i == 4)
        break; // this will immediately exit our loop
    std::cout << i << '\n';
}

上面的程式碼將列印出來:

1
2
3

continue 語句不會立即退出迴圈,而是跳過迴圈體的其餘部分並轉到迴圈的頂部(包括檢查條件)。

for (int i = 0; i < 6; i++)
{
    if (i % 2 == 0) // evaluates to true if i is even
        continue; // this will immediately go back to the start of the loop
    /* the next line will only be reached if the above "continue" statement 
       does not execute  */
    std::cout << i << " is an odd number\n";
}

上面的程式碼將列印出來:

1 is an odd number
3 is an odd number
5 is an odd number

由於這種控制流量的變化有時很難讓人類容易理解,因此節省了使用 breakcontinue。更直接的實現通常更容易閱讀和理解。例如,第一個帶有 breakfor 迴圈可能會被重寫為:

for (int i = 0; i < 4; i++)
{
    std::cout << i << '\n';
}

continue 的第二個例子可能被重寫為:

for (int i = 0; i < 6; i++)
{
    if (i % 2 != 0) {
        std::cout << i << " is an odd number\n";
    }
}