循环控制语句用于从正常顺序更改执行流程。当执行离开作用域时,在该作用域中创建的所有自动对象都将被销毁。该break和continue是循环控制语句。
该break语句无需进一步考虑即可终止循环。
for (int i = 0; i < 10; i++) { if (i == 4) break; // 这将立即退出我们的循环 std::cout << i << '\n'; }
上面的代码将打印出来:
1 2 3
该continue语句不会立即退出循环,而是会跳过循环主体的其余部分并转到循环的顶部(包括检查条件)。
for (int i = 0; i < 6; i++) { if (i % 2 == 0) // 如果我是偶数,则评估为真 continue; // 这将立即回到循环的开始 /* 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被谨慎使用。通常,更直接的实现通常更容易阅读和理解。例如,for具有break上述内容的第一个循环可能被重写为:
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"; } }