循环控制语句用于从正常顺序更改执行流程。当执行离开作用域时,在该作用域中创建的所有自动对象都将被销毁。该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";
}
}