break语句
- break语句只能出现在两种场合中。一是用于跳出switch语句,二是用于循环语句(for,while,do…while)中,他的作用是提前结束循环的执行,使流程转到循环的下一条语句,也即会终止循环而执行整个循环语句后面的代码。通常与if连用,作为判断条件。
- 在多层循环中,一个 break 语句只向外跳一层。例如,在两个for语句中,只会跳出内部的for语句,而继续执行外部的for循环。
例如:一个4*4的整数矩阵,
#include <stdio.h>
int main(){
int i=1, j;
while(1){ // 外层循环
j=1;
while(1){ // 内层循环
printf("%-4d", i*j);
j++;
if(j>4) break; //跳出内层循环
}
printf("\n");
i++;
if(i>4) break; // 跳出外层循环
}
return 0;
}
运行结果:
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16
说明:
当 j>4 成立时,执行break;,跳出内层循环;外层循环依然执行,直到 i>4 成立,跳出外层循环。
continue语句
- continue语句的作用是使执行流程跳过循环体中continue下面的语句,即提前结束本次循环,开始下一次循环。
- 在while和do…while语句中,执行continue语句就立即测试是否继续循环的条件。在for语句中,执行continue语句后,先执行递增表达式3,然后测试继续循环的条件2语句。一般地,continue语句都会位于一个if语句中,即可能对于满足某一条件的某次循环起作用。
例如:
#include <stdio.h>
int main(){
char c = 0;
while(c!='\n'){ //回车键结束循环
c=getchar();
if(c=='4' || c=='5'){ //按下的是数字键4或5
continue; //跳过当次循环,进入下次循环
}
putchar(c);
}
return 0;
}
运行结果:
0123456789↙
01236789
程序遇到while时,变量c的值为’\0’,循环条件c!=’\n’成立,开始第一次循环。getchar() 使程序暂停执行,等待用户输入,直到用户按下回车键才开始读取字符。
本例我们输入的是 0123456789,当读取到4或5时,if 的条件c==‘4’||c=='5’成立,就执行 continue 语句,结束当前循环,直接进入下一次循环,也就是说putchar ( c );不会被执行到。而读取到其他数字时,if 的条件不成立,continue 语句不会被执行到,putchar( c );就会输出读取到的字符。
break与continue的对比
break 用来结束所有循环,循环语句不再有执行的机会;continue 用来结束本次循环,直接跳到下一次循环,如果循环条件成立,还会继续循环。
注意:break与for在一起时,与continue相似。
ps: 部分搬运于c语言中文网。