目录
1. continue和break 在 for 循环中的应用
2. continue和break 在 while 循环中的应用
3. continue 和break 在 do-while 循环中的应用
在单层循环中,continue
语句用于 跳过本次循环的剩余部分,直接进入下一次循环的迭代(即执行循环的下一次判断条件)。它常用于 for
、while
和 do-while
循环中,以跳过某些特定的情况。break语句用于终止整个循环,直接跳出循环部分。
在嵌套循环中,continue与break均只影响他们所在的循环。
1. continue和break
在 for
循环中的应用
当 continue
语句执行时,它会跳过 for
循环剩余的语句【循环体中剩余的语句】,直接进行 迭代更新(即 i++
部分),然后继续判断循环条件。
#include<iostream>
int main(){
for(int i=1;i<=5;i++){
if(i==3){
continue; // 跳过i==3时的循环体,直接进入下一次循环
// break; // 终止整个循环
}
std::cout<<"i= "<<i<<std::endl;
}
return 0;
}
// 程序输出:
// i=1
// i=2
// i=4
// i=5
上面的代码中,当 i == 3
时,continue
语句执行,导致 std::cout
语句被跳过,直接进入 i++
,然后进行下一次循环。
当 break 语句执行时,它会终止for循环,直接执行 for 循环之后的代码逻辑。
#include<iostream>
int main(){
for(int i=1;i<=5;i++){
if(i==3){
// continue; // 跳过i==3时的循环体,直接进入下一次循环
break; // 终止整个循环
}
std::cout<<"i= "<<i<<std::endl;
}
return 0;
}
// 程序输出:
// i=1
// i=2
上面的代码中,当 i == 3
时,break 语句执行,导致 for循环终止。
2. continue和break
在 while 循环中的应用
2.1 continue在while循环中的应用
在 while
循环中,continue
直接跳回 条件判断部分,不执行后续代码。
#include <iostream>
int main() {
int i = 0;
while (i < 5) {
i++; // 先自增,否则可能导致死循环
if (i == 3) {
continue; // 跳过 i == 3 时的输出
}
std::cout << "i = " << i << std::endl;
}
return 0;
}
// 程序输出:
// i = 1
// i = 2
// i = 4
// i = 5
⚠️ 注意:如果 continue
在 while
中未合理地调整迭代变量,可能会导致死循环。例如,如果 continue
放在 i++
之前,i == 3
时会进入无限循环。 例如下面的代码就会导致程序死循环。
#include <iostream>
int main() {
int i = 0;
while (i < 5) {
if (i == 3) {
continue;
}
std::cout << "i = " << i << std::endl;
i++;
}
return 0;
}
我们来说一说为什么会进入死循环?
i=0,第一次进入while循环,输出i=0,i自增变为1;
i=1,第二次进入while循环,输出i=1,i自增变为2;
i=2,第三次进入while循环,输出i=2,i自增变为3;
i=3,第四次进入while循环,if条件满足,执行continue语句,退出当前while循环,执行下一次while循环;
i=3,第五次进入while循环,if条件满足,执行continue语句,退出当前while循环,执行下一次while循环;
i=3,第六次进入while循环,if条件满足,执行continue语句,退出当前while循环,执行下一次while循环;
陷入死循环。
2.2 break在while循环中的应用
#include <iostream>
int main() {
int i = 0;
while (i < 5) {
i++;
if (i == 3) {
break;
}
std::cout << "i = " << i << std::endl;
}
return 0;
}
// 程序输出:
// i = 1
// i = 2
break语句会终止while循环。
3. continue
和break 在 do-while
循环中的应用
3.1 continue在do-while循环中的应用
在 do-while
结构中,continue
会直接跳到 循环条件检查部分,而不会执行剩余语句。
#include <iostream>
int main() {
int i = 0;
do{
i++;
if (i == 3) {
continue; // 直接跳过当前循环剩余部分
}
std::cout << "i = " << i << std::endl;
}while (i < 5);
return 0;
}
// 程序输出:
// i = 1
// i = 2
// i = 4
// i = 5
3.2 break 在do-while循环中的应用
#include <iostream>
int main() {
int i = 0;
do{
i++;
if (i == 3) {
break; // 直接终止循环
}
std::cout << "i = " << i << std::endl;
}while (i < 5);
return 0;
}
// 程序输出:
// i = 1
// i = 2
break直接终止循环。
4. continue
和 break 在嵌套循环中的作用
4.1 continue在嵌套循环中的应用
continue
只会影响 它所在的循环。
#include <iostream>
int main() {
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (j == 2) {
continue; // 只跳过内层循环 j == 2 的情况
}
std::cout << "i = " << i << ", j = " << j << std::endl;
}
}
return 0;
}
// 程序输出:
// i = 1, j = 1
// i = 1, j = 3
// i = 2, j = 1
// i = 2, j = 3
// i = 3, j = 1
// i = 3, j = 3
当 j == 2
时,continue
只影响 内层循环,跳过 j == 2
的输出,但 i
的循环仍然继续。
4.2 break在嵌套循环中的应用
break 只会终止 它所在的循环,不会影响外层循环。
#include <iostream>
int main() {
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (j == 2) {
break; // 当 j == 2 时,内层循环终止
}
std::cout << "i = " << i << ", j = " << j << std::endl;
}
}
return 0;
}
// 程序输出:
// i = 1, j = 1
// i = 2, j = 1
// i = 3, j = 1
代码执行过程:
总结
✅ continue
用于 跳过当前迭代的剩余部分,进入下一次循环;
✅ continue
在 for
循环中会执行 迭代更新部分,然后继续判断;
✅ continue
适用于 过滤特定条件,而 break
用于 完全终止循环;
✅ continue
只影响 当前所在的循环层级,不会跳出多层循环。