continue和break在c语言中的应用都用于退出循环,continue是退出单次循环,而break是退出它所在的这个循环体。但是由于while语句,for语句和do while语句的语法结构有些不同,因而在这三种循环语句中,continue和break的应用也会有所差异。
while语句在while语句中,continue会让程序跳出此次循环回到判断部分(若判断部分前有其他代码则先执行前面的代码),而break会让程序跳出整个while循环。
流程图 演示代码 continue //代码1#include<stdio.h>int main(){ int i=1; //初始化 while(i<=10) //判断 { if(i==5) continue; //跳出本次循环 printf("%d",i); i=i+1; //调整 } return 0; //执行出错(死循环)} //代码2#include<stdio.h>int main(){ int i=1; while(i<=10) { i=i+1; if(i==5) continue; printf("%d",i); } return 0; //2 3 4 6 7 8 9 10 11} break #include<stdio.h>int main(){ int i=1; while(i<=10) { if(i==5) break; //跳出整个while循环 printf("%d",i); i=i+1; } return 0; //1 2 3 4(中止循环)} for语句在for语句中,continue和break的作用同while中基本一样,但continue会实现for语句()中调整的部分后再回到判断。
流程图
红圈123分别是for语句()里的三部分。
do while语句中的continue会让程序跳转到判断部分,而后重新执行do语句,进入循环,break会跳出整个do while循环。
流程图 演示代码 continue //代码1#include<stdio.h>int main(){ int i=0; do { if(i==5) continue; //因为i不等于5,所以continue不执行 printf("%d",i); } while(i<=10); return 0; //0 0 0 0 0 0… (循环)} //代码2//若初始化i设置为5,则跳过do{}中,continue后面的代码,直接进入判断部分,再次回到do语句中去,形成死循环#include<stdio.h>int main(){ int i=5; do { if(i==5) printf("%d",i); } while(i<=10); return 0; //执行出错(死循环) //代码3#include<stdio.h>int main(){ int i=0; do { if(i==5) continue; //跳出此次循环,执行while()语句 printf("%d",i); } while(++i<=10); return 0; //0 1 2 3 4 6 7 8 9 10(中止循环)} break //代码1#include<stdio.h>int main(){ int i=5; do { if(i==5) break; printf("%d",i); } while(i<=10); return 0; //没有结果,因为break跳出了do()语句} //代码2#include<stdio.h>int main(){ int i=0; do { if(i==5) break; printf("%d",i); } while(++i<=10); return 0; //0 1 2 3 4}