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