continue与break的区别是什么?

来源:7-1 编程练习

微风听醉

2015-11-05 16:00

总把它们混淆


写回答 关注

1回答

  • i爱慕客
    2015-11-05 16:07:25

    continue只对直接包含它的循环体有效(也就是for,while, 而switch{}中的不算循环体);
    break有效的是直接包含它的for,while,switch块。


    比如在不包含switch的代码中出现break或者continue,那么break跳出循环体,而continue跳出本次循环,而对于在循环中嵌套switch语句的代码中,break仅跳出最内层的块,这个块若是switch,就仅跳出switch,而continue即使出现在switch块中,因为continue的作用范围仅针对 for while 之类的循环语句,故不起作用,依旧跳出本次循环,不注意的话也会认为同样是跳出switch语句块了。


    给你举个例子吧:

    sum = 0
    for(i = 0;i < 10; ++i) {
    if(i == 4) 
    break;
    if(i == 2)
    continue;
    sum += i;
    }

    结果为:sum 为 0+1+3=4
    循环计算累加和,放在sum中


    过程如下:i从0开始循环,每次i++。当i == 2的时候,执行continue,跳过sum += i这句,继续循环,也就是说,2并没有加到sum中去。循环继续,i变成3,执行sum+=i。然后发现i == 4了,于是执行break,跳出for循环,也就是说,break之后,i的值固定在4了,循环语句不再被执行了,sum += i这句也就不再被执行了。
    break是直接跳出循环体,而continue是跳过循环体中余下的语句(这里为sum += i;)继续执行循环。



    除此之外,break还可以用在switch/case中,用来结束条件匹配,道理和在循环中一样。

    face10... 回复微风听醉

    沙同学,你也是够了,学过就忘,真是沙蜜蜂

    2015-11-05 19:12:10

    共 2 条回复 >

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165512 学习 · 17586 问题

查看课程

相似问题