C++中的 continue 与 break

目录

1. continue和break 在 for 循环中的应用

2. continue和break 在 while 循环中的应用

2.1 continue在while循环中的应用 

2.2 break在while循环中的应用 

3. continue 和break 在 do-while 循环中的应用

3.1 continue在do-while循环中的应用 

 3.2 break 在do-while循环中的应用 

4. continue 和 break 在嵌套循环中的作用

4.1 continue在嵌套循环中的应用 

4.2 break在嵌套循环中的应用

总结 


在单层循环中,continue 语句用于 跳过本次循环的剩余部分,直接进入下一次循环的迭代(即执行循环的下一次判断条件)。它常用于 forwhiledo-while 循环中,以跳过某些特定的情况。break语句用于终止整个循环,直接跳出循环部分。

在嵌套循环中,continue与break均只影响他们所在的循环。

1. continue和breakfor 循环中的应用

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和breakwhile 循环中的应用

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

⚠️ 注意:如果 continuewhile 中未合理地调整迭代变量,可能会导致死循环。例如,如果 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 用于 跳过当前迭代的剩余部分,进入下一次循环;
continuefor 循环中会执行 迭代更新部分,然后继续判断;
continue 适用于 过滤特定条件,而 break 用于 完全终止循环
continue 只影响 当前所在的循环层级,不会跳出多层循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值