6.2 continue与break关键字

本篇说一下continue与break两个关键字

内容在书7.6章.

1.continue关键字

1.1 可用范围

while, do-while, for循环都可以使用

1.2 作用

执行到continue时,跳过本次循环的剩余部分,继续执行下一次循环.多层循环嵌套时,仅对当前层有效.

比如

for(;;) {//A
    while(xxx) {//B
        if(xxx) continue;//2
        while(xxx) {//C
            if(xxx) continue;//3
        }
    }
    if(xxx) continue;//1
}

3只对循环C有效,同理,2只对B有效,1只对A有效. 

即循环C执行了continue(3)之后继续循环C,不会影响两个外层循环循环B,循环A.

2.break关键字

2.1可用范围

while, do-while, for循环以及后面会说到的switch都可以使用

2.2作用

直接退出当前层的循环,同样仅对当前层有效.

比如

for(;;) {//A
    while(xxx) {//B
        if(xxx) break;//2
        while(xxx) {//C
            if(xxx) break;//3
        }
    }
    if(xxx) break;//1
}

3只对循环C有效,同理,2只对B有效,1只对A有效. 

即循环C执行了break(3)之后继续循环C,不会影响两个外层循环循环B,循环A.

3.代码示例

3.1 计算1-10000中所有5的倍数的和(while版)

# define STEP 5

int main(void) {
    int max = 10000;
    int now = 1;
    int result = 0;
    while(now > 0) {   //为了展示break的作用就用了一个一直为true的表达式
        if(++now > max) break;        // 大于10000就中断循环
        if(now % STEP != 0) continue; // 不是5的倍数就不执行下面的与result相加操作
        result += now;
    }	
    printf("while:1-10000中所有5的倍数的和为:%d\n", result);
    return 0;
}

3.2 计算1-10000中所有5的倍数的和(do-while版)

int main(void) {
    int number = 1;
    int result = 0;
    do {	
        if(++number > 10001) break;
        if(number % 5 != 0) continue;
        result += number;
    } while(number > 0);
    printf("do-while:1-10000中所有5的倍数的和为:%d\n", result);
    return 0;
}

3.3 计算1-10000中所有5的倍数的和(for版)

int main(void) {
    int number = 1;
    int result = 0;
    for(;;) {
        if(++number % 5 != 0) continue;
        if(number > 10000) break;
        result += number;    
    }
    printf("for:1-10000中所有5的倍数的和为%d\n", result);
    return 0;
}

3.1, 3.2与3.3的执行结果:

while:1-10000中所有5的倍数的和为:10005000

do-while:1-10000中所有5的倍数的和为:10005000

for:1-10000中所有5的倍数的和为10005000

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值