通过试验,有一些关于c的心得,在此记录下来。附上代码段:
#include <stdio.h>
void main()
{
int i;
for(i=0;i<4;i++)
switch(i)
{
default:printf("%d",i+1);
case 1:printf("%d",i);
case 2:printf("%d",i);
}
}
输出结果为100 11 2 433。当case语句中没有break时会实行后面所以的语句,如果i在case里有,i前面的内容不执行,是否执行后面的内容看是否有break语句。
如果switch里面的语句换为
default:printf("%d",i+1);
case 1:printf("%d",i);break;
case 2:printf("%d",i);break;
输出结果为10 1 2 43。如果将case 1后面的break换为continue,输出结果任然为101243。
总结:continue语句会终止switch循环,使得for里面的i变为下一个(即结束本轮循环,开始下轮循环)。所以在本例中continue与break对于switch是相同的作用,而且只要case或者default中不使用break就会一直执行到最后面一句。
附上书上原话(狂人c第五章):break语句也可作用于循环语句中,作用是结束break语句所在的最内层的循环语句;continue语句作用于循环语句,作用是转入循环语句的()内继续执行循环语句。