【C语言】分支循环第二章1:https://developer.aliyun.com/article/1474624
四 、break和continue语句
在循环执⾏的过程中,如果某些状况发⽣的时候,需要提前终⽌循环,这是⾮常常⻅的现象。C语⾔中提供了break和continue 两个关键字,就是应该到循环中的。
• break的作⽤是⽤于永久的终⽌循环,只要break 被执⾏,直接就会跳出循环,继续往后执
⾏。
• continue 的作⽤是跳过本次循环在for 循环和while 循环中有所差异的。
4.1 while循环中的break和continue
4.1.1break举例
#include <stdio.h> int main() { int i = 1; while(i<=10) { if(i == 5) break;//当i等于5后,就执⾏break,循环就终⽌了 printf("%d ", i); i = i+1; } return 0; }
执⾏的结果:
- 打印了1,2,3,4后,当i等于5的时候,循环正
break
的地⽅终⽌,不再打印,不再循环。 - 所以break 的作⽤就是永久的终⽌循环,只要break 被执⾏,break 外的第⼀层循环就终⽌了。那以后我们在循环中,想在某种条件下终⽌循环,则可以使⽤break 来完成我们想要的效果。
4.1.2continue举例
如果把break
换成continue
会是什么结果呢?
#include <stdio.h> int main() { int i = 1; for(i=1; i<=10; i++) { if(i == 5) continue;//这⾥continue跳过了后印来到了i++的调整部分 printf("%d ", i); } return 0; }
所以在
for
循环中continue
的作⽤是跳过本次循环中continue 后的代码,直接去到循环的调整部分。未来当某个条件发⽣的时候,本次循环⽆需再执⾏后续某些操作的时候,就可以使⽤continue
来实现。
4.2 for循环中的break和continue
4.2.1 break
举例
其实和while循环中的break一样,要循环多少次,只要执行到了for
循环中的break
也是用于终止循环的,不管循环还需break,循环就彻底终止,我们上代码。
#include <stdio.h> int main() { int i = 1; for(i=1; i<=10; i++) { if(i == 5) break; printf("%d ", i); } return 0; }
运⾏结果:
break
的作⽤是永久的终⽌循环,未来我们在某个条件发⽣的时候,不想再继续循环的时候,就可以break
来完成。
4.2.2 continue
举例
#include <stdio.h> int main() { int i = 1; for(i=1; i<=10; i++) { if(i == 5) continue;//这⾥continue跳过了后打印来到了i++的调整部分 printf("%d ", i); } return 0; }
所以在
for
循环中,continue
的作用是跳过本次循环中continue
后的代码,直接进入下一次循环的调整部分。当某个条件发生时,如果不需要执行后续的某些操作,可以使用continue
来实现。
4.3 do while
循环中的break和continue
do.while
语句中的break
会跳出整个do-while
循环。
break:
ontinue:
在do-while
循环中,continue
不会直接跳出循环,而是跳过continue
后面的语句,然后直接到循环条件去判断。
do { // 循环体开始 if(condition) { continue; 当执行此语句,直接跳过 循环体内其他语句 1 2 3,直接到循环条件进行判断 } // 循环体内其他语句 1 // 循环体内其他语句 2 // 循环体内其他语句 3 // 循环体结束 } while(循环条件);
此时代码发生死循环,原因是因为当i=5
时,执行continue
然后把printf
语句和i=i+1
语句都跳过了,直接跳到判断语句中while(i<=10)
这个语句中,i
没有改变,下次进来继续continue
造成死循环
代码调试观察:
五、 goto语句
C语⾔提供了⼀种⾮常特别的语法,就是
内跳转到设置好的标号处。
例如:
#include <stdio.h> int main() { printf("hehe\n"); goto next: printf("haha\n"); next: printf("跳过了haha的打印\n"); return 0; }
goto
语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以我们的建议是能不⽤尽量不去使⽤;但是使⽤goto
就⾮常的⽅便了。语句也不是⼀⽆是处,在多层循环的代码中,如果想快速跳出但是使⽤goto
就⾮常的⽅便了。
for(...) { for(...) { for(...) { if(disaster) goto error; } } } error: //..
本来,对于循环想要提前退出,需要使用三个break
语句。一个break
只能跳出一层循环,因此在这种情况下,我们可以使用for
循环。如果有三层循环嵌套,使用goto
语句会更加方便快捷。
喜欢的话可以点个赞哦(❤ ω ❤)