迴圈控制語句中斷和繼續
迴圈控制語句用於從正常順序更改執行流程。當執行離開作用域時,將銷燬在該作用域中建立的所有自動物件。break
和 continue
是迴圈控制語句。
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
由於這種控制流量的變化有時很難讓人類容易理解,因此節省了使用 break
和 continue
。更直接的實現通常更容易閱讀和理解。例如,第一個帶有 break
的 for
迴圈可能會被重寫為:
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";
}
}