这几次循环的执行过程如下:
c++
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 2; ++j) {
if (j == 1) break;
cout << i << " " << j << endl;
}
}
输出:
0 0
2 0
解析:
i = 0, j = 0, 打印,j++,j != 1,继续
i = 0, j = 1, break跳出内层循环
i++, i = 1, 内层循环重新开始,j = 0
i = 1, j = 0, 打印,j++,j != 1,继续
i = 1, j = 1, break跳出内层循环
i++, i = 2, 内层循环重新开始,j = 0
i = 2, j = 0, 打印
可以看出,break跳出内层循环后,外层循环的变量i还是保持不变,内层循环的变量j会重新开始从0开始。
所以上面代码的输出是:
0 0
1 0
2 0
而不是:
0 0
2 0
break后,外层循环检查循环条件,满足条件继续执行,里层循环重新初始n=2
第一次跳出循环时,n=3,后面几次都跟具体值有关!
1,"break"是C语言中的关键字;
2,"break"词语解释是:跳出当前循环;
跳出当前循环指的是:执行for、while、do while 循环时,满足一定条件后立即终止该循环。
3,注意点:
①break语句对if-else的条件语句不起作用。
②在多层循环中,一个break语句只向外跳一层。
根据参考资料中的信息,break语句可以用于终止循环语句,因此在下列循环中,当break语句跳出内层循环后,外层循环的变量n会保持为2:
for (int n = 1; n <= 3; n++) {
for (int i = 1; i <= 3; i++) {
if (i == 2) {
break;
}
std::cout << "i " << i << " n " << n << std::endl;
}
std::cout << "out of inner loop " << "n " << n << std::endl;
}
具体执行过程如下:
因此,在循环嵌套的情况下,break语句只能跳出内层循环而不能跳出外层循环,外层循环的变量n的值会保持不变。