现在越来越发现自己之前都白学了,都快毕业了,却连最基础的C语言都忘干净了!赶紧恶补吧!!
简单来说break就是跳出当前循环体(或switch)结束循环,然后执行循环下面的语句,而continue是结束本次循环,不执行循环体下面尚未执行的语句,接着进行下次是否进行循环的判断。
书上专业的理解是:break语句可以从最内层的循环或者switch语句中退出。continue语句只能出现在for, while, do循环中。(感觉好像没理解,还是看例子吧)
#include <stdio.h>
int main(void)
{
int flag=0;
for(int j=0; j <2; j++) {
if(j==0) {
switch(j) {
case 0:
continue;
}
flag=1;
}
}
printf( " flag:%d\n ",flag);
}
输出flag:0 将continue换成break;则输出flag:1
#include <stdio.h>
void main()
{
int flag = 0;
int j = 0 ;
for(j=0; j <2; j++) {
if(j==0) {
if(j==0) {
continue;
}
flag=1;
}
}
printf( " flag:%d\n ",flag);
}
没有 switch 则break只对循环体起作用了,所以break与continue的结果都是 flag:0
再来一个switch的例子,就不信还会忘!
#include <stdio.h> #include <string.h> int main() { char i; for(i=0;i<5;i++){ switch(i){ case 0: printf("i=%d\n",i);break; case 1: printf("i=%d\n",i);break; case 2: printf("i=%d\n",i);continue;printf("ok\n"); case 3: printf("i=%d\n",i);break; default: printf("errp\n"); } printf("lalala\n"); } getch(); }
结果中continue后的ok和lalala都没有输出,而break输出了。