简洁直观地区别break与continue

break和continue的作用都是“中断循环”,但是有区别。如同字面意思一样,break(打破)就是纯粹的中断跳出,而continue是要继续,是跳过continue之后的语句继续循环。

在《Java编程思想》(英文原著为《Think in Java》)中有很好解释(P69-P70):

break用于强行退出循环,不执行循环中剩余的语句。

continue停止执行当前的迭代,然后退回循环起始处,开始下一次迭代。

注意对比上面这两句话的不同:break不仅再不执行循环中剩余的语句,同时也要结束循环;continue仅仅不执行循环中剩余的语句,并不跳出循环。

举例来说,看下面这段代码

for(int i=0;i<10;i++)
{
    if(i==3) continue;
    else if(i==7) break;
    cout<<i<<endl;
}

一段简单到不能再简单的代码,运行结果为:

0
1
2
4
5
6

通过观察最后的输出结果就能看出break和continue的区别:程序在i==3时跳过了后面的输出i的语句,转到循环开头进行下一次循环,因此3并未输出但循环继续往下执行。当i==7时触发了break,直接结束了for循环。

其实更简单的方法:把上面的代码复制到编译器中,Debug单步执行,很容易就能看出是如何执行的,动手操作会更清楚。

要说明的是,break和continue只能退出一层循环——当有多层循环嵌套时,有可能要做连续的break,在这个时候有可能就要用到备受争议的goto了。有关于goto,近期会研究一下再写一篇。到时候链接会附在这里。

还是引用《Java编程思想》(英文原著《Think in Java》)中一部分精炼的总结作结(P73):

1.一般的continue会退回最内层循环的开头(顶部),并继续执行;

2.一般的break会中断并跳出当前循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值