我们知道c语言中有三种循环1.while循环2.for循环3.do while循环。在循环中经常出现break和continue这两个跳出循环的操作,我们如何区分break和continue?以及他们在循环中的误区呢?
break和continue的区别
break:用来终止循环,程序一旦走到break后,就会跳出这一层循环,并且终止循环,若有多个循环,可以多次使用break。
continue:跳出continue后面的代码直接进入下一次循环,当程序运行到continue时,就会跳过continue后面的代码,直接进入下一次循环。
我们看一下最简单的代码,大家也可以先不看运行结果,自己判断一下程序运行结果是什么
这是一个for循环,i的初始值为1,当i<=10时,运行循环体内的代码,最后i++,这个顺序一定要记牢!!!
第一次循环i=1,判断i<=0是否为真,为真则运行循环体里的代码,输出1,再次判断i==5是否为真,为假则break不运行,最后i++,此时i=2,再次进入循环.此时运行结果为1
第二次循环i=2,判断i<=0是否为真,为真则运行循环体里的代码,输出2,再次判断i==5是否为真,为假则break不运行,最后i++,此时i=3,再次进入循环.此时运行结果为1 2
第三次循环i=3,判断i<=0是否为真,为真则运行循环体里的代码,输出3,再次判断i==5是否为真,为假则break不运行,最后i++,此时i=4,再次进入循环.此时运行结果为1 2 3
第四次循环i=4,判断i<=0是否为真,为真则运行循环体里的代码,输出4,再次判断i==5是否为真,为假则break不运行,最后i++,此时i=5,再次进入循环.此时运行结果为1 2 3 4
第五次循环i=1,判断i<=0是否为真,为真则运行循环体里的代码,输出5,再次判断i==5是否为真,为真则break运行,终止循环并结束,最终程序运行结果为1 2 3 4 5结束.
大家一定一定一定(重要的事情说三遍)要牢记for循环中的顺序:初始值-->判断-->执行循环体内程序-->i的变化
我们再来看一个for循环中continue的代码,大家可以先思考一下代码运行结果。
这还是一个从1打印到10的for循环,但是与上面不同的是continue会跳过continue循环后的代码即printf语句。
我们直接从i==5开始看,当i==5时if判断成立为真,执行continue,跳过printf语句,因为此时i==5,所以5就不会被打印,进入下一个循环,所以代码执行结果为1 2 3 4 6 7 8 9 10.
我们再来看一下while循环中的break和continue的区别
大家可以看一下这两张图的区别,break的作用就显而易见了,这里也不过多分析了,相信大家都可以看懂
接着我们看一下continue在while循环中的作用
i的初始值为1,i<=10进入循环,i++,此时i变为1,进行判断i是否等于5,结果为假printf输出,一直到i==5时if判断成立,continue跳过printf语句,就不会打印5,当i==10时i++,此时i=11,判断为假,执行printf,输出11,最终代码运行结果为1 2 3 4 6 7 8 9 10 11
大家看一下下面这个代码和上面这个代码有什么区别
为什么会打印5呢?
很简单,因为先执行printf语句,后做的判断,当i==5时,输出5,判断if语句为真,continue执行,但因为continue后面没有语句,所以这种情况的continue是没有作用的,大家在做题的时候要认真分析循环内的语句,防止被误导
感谢大家的观看,希望大家可以喜欢,我也会继续努力,把自己学到的,以及自己迷惑而解决的问题分享给大家,希望对大家有帮助!!!