如今上班族一周休两天已经成为奢望,一周休一天也算是难能可贵,那就一边吐槽,一边以这个带你们领略一下何为 continue 与 break
continue
- 很多的的公司一周只允许在周六休一天,其余时间全部上班。于是我就写了以下的C语言程序反映一周的工作情况,加以吐槽。里面有一个 continue ,看不懂不要急,先看运行结果。
#include<stdio.h>
int main() {
for (int i = 1; i < 8; i++) {
if (i==6) {
continue;
}
printf("今天是星期%d,上班,真烦躁\n", i);
}
}
- 一周只有周六不上班,下图显示的结果很正确:
- 但是,如果把 continue 去掉呢?可以看到周六都tm在上班,这可不是我们想要的结果。
- 对比有 continue 和没有 continue 的结果,哪里不一样?
很明显,有 continue 时星期六并没有出现在结果里。为什么?说明当循环满足 i等于6,走向 continue 的时候,它就会把当前这一次的循环断开,即不执行它所处的最内层的循环体中位于它下面的语句,直接开始下次的循环。所以,当我把输出语句放于 continue 的上面时,虽然 i 等于6 时,它会断开这一次循环,但是输出语句在它断开之前就已经输出了,并无大碍。
break
- 既然知道了 cotinue ,那么直接把 continue 换成 break,看看会发生什么?
- 星期六,星期日都不见了?为什么?
说明当循环满足 i等于6,走向 break 的时候,它就会直接结束它所处的最内层的循环体,直接跳出它所处的循环。当我把输出语句放于 break 的上面时, i 等于6 时,它还会输出,但是输出后走到 break ,直接跳出当前循环体,所以也就没有了星期日的影子。
总结
continue:会把当前这一次的循环断开,即不执行它所处的最内层的循环体中位于它下面的语句,直接开始下次的循环。
break:会直接结束它所处的最内层的循环体,直接跳出它所处的循环。
但你应该会注意到,我说的都是 它所处的最内层的循环体 ,为什么怎么说?
那就再给上述例子再加一层循环,让他输出两周的工作情况,可以看到无论是哪个都输出了两周的。说明 break 与 continue ,本事再大,他也只能在它所处的最内层的循环体撒撒野,外层的循环他还够不着。
- continue
- break