时间:2021-05-20
在c语言中,为了使用循环控制更灵活,c语言允许在特定条件成立时使用break语句和continue语句控制循环的执行过程
这是它们两个的定义和使用逻辑,但是为了弄懂它们在具体的使用情况,我们可以把上述的定义全部拉满,就可以了,嘿嘿!
♕循环语句:在c语言中,无非是三种循环语句,while循环,do…while循环,for循环。
那么我们就每一个循环举一个例子,就可以挖掘我们需要知道的东西啦。理论存在,例子来了!!!
输出100~ 200能同时被3,5,和7整除的整数: ①
#include <stdio.h>void main(){ int n; for (n=100;n<=200;n++) { if(n%3!=0||n%5!=0||n%7!=0) continue; printf("%d\n",n ); }}输出结果
如果要是不用continue完成上述条件
②
#include <stdio.h>void main(){ int n; for (n=100;n<=200;n++) { if(n%3==0 && n%5==0 && n%7==0) printf("%d\n",n ); }}运行结果与上面相同
但是如果加上break则发生了奇妙的化学反应
③
#include <stdio.h>void main(){ int n; for (n=100;n<=200;n++) { if(n%3==0 && n%5==0 && n%7==0)break; printf("%d\n",n ); }}输出结果:
所以在for循环里面,第一个例子可以看出,continue一般接在if判断语句的后面,用来控制循环变化。continue就像是门卫一样,只要你还满足条件,就给我进去循环去,变成我不想要的样子,在放你出去进行下面的语句,可能这么说有点抽象,可以看下面的动态图解
这里就可以明白continue的存在就是不让下面的语句动,只有不满足判断语句才可以跳出来,执行下面的语句。一看就是个狠人呀!!!
对于③里面的break可以看出是直接跳出循环,105满足条件,没问题,循环结束了,break的存在就像是一个固执的老头,只要满足需求了,后面的人就不要了,我也不看了的感觉。
运行结果
上述代码执行完成后是死循环,因为i=6时满足if条件,执行continue语句,i的值仍为6,执行下一轮循环,满足if条件,执行continue语句,i值仍为6,这样就变成了死循环。
你看到上面这个小标题一定会想我去,这个土豆哥有点瓦呀,switch语句中不能使用continue语句,侬晓得哇!!!
毋庸置疑,在switch case 语句中不能使用continue 关键字。continue语句的作用是跳出本次循环,转入执行下一次循环。故而,continue语句只能用于循环语句中,而switch case语句为多分支选择语句,不是循环语句。
但是直到我看见了这个题目,改变了我的一些看法。
为了大家方便验证:(代码如下)
#include <stdio.h>int main(void){ int k=0;char c='A'; do { switch(c++) { case 'A':k++;break; case 'B':k --; case 'C':k+=2;break; case 'D':k=k%2;continue; case 'E':k=k*10;break; default:k=k/3; } k++; }while(c<'G'); printf("k=%d\n",k ); return 0;}运行结果
然后我又把continue语句删除后的运行结果
#include <stdio.h>int main(void){ int k=0;char c='A'; do { switch(c++) { case 'A':k++;break; case 'B':k --; case 'C':k+=2;break; case 'D':k=k%2; case 'E':k=k*10;break; default:k=k/3; } k++; }while(c<'G'); printf("k=%d\n",k ); return 0;}运行结果
然后我再把continue语句换成break语句的运行结果
#include <stdio.h>int main(void){ int k=0;char c='A'; do { switch(c++) { case 'A':k++;break; case 'B':k --; case 'C':k+=2;break; case 'D':k=k%2;break; case 'E':k=k*10;break; default:k=k/3; } k++; }while(c<'G'); printf("k=%d\n",k ); return 0;}运行结果
可以看出continue语句在switch里还是起到了一定的效果的。然后我们可以利用断点的形式来实现知道每一步的值。(这里大家可以自己去试一试呀)然后呢,我把这个过程总结在下面的图里面了。
从上面的图可以看出continue语句在switch中的用法还是跟他的原始定义一样,跳到上面的循环,然后继续执行。在本题中就是在c=D时不执行下面的k++,跳回上面的c++,然后呢,在执行c=E。感觉呢可以了解一下,虽然理论上来说continue不能用于switch里面,但是这里确实没报错呀。哈哈,看来矛盾确实是生活的一部分,要是大佬们有自己的看法欢迎在下面留言评论呀!!!
到此这篇关于C语言break和continue的精妙布局的文章就介绍到这了,更多相关C语言break和continue内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
python中break、continue、exit()、pass区分1、break:跳出循环,不再执行Pythonbreak语句,就像在C语言中,打破了最小封
Swift提供了所有C语言中相似的控制流结构。包括for和while循环;if和switch条件语句;break和continue跳转语句等。Swift还加入了
javascript:break和continue是两个用在内部循环的特殊语句。使用break语句跳出循环;用continue语句来跳出当前的循环继续下面的值。
break语句在C编程语言中的break语句有以下两种用法:当在循环中遇到break语句,循环立即终止,程序控制继续循环语句的后面(退出循环)。它可用于终止在s
在自己学习java语言的过程中,很容易把break和continue的用法混淆。为了便于以后快速查阅及温习,在此特留学习笔记一份。简述在任何迭代语句的主体部分,