switch语句中貌似不可以用continue吧,况且continue也不是结束循环的意思,而是跳过循环体中continue语句之后的部分不执行而直接执行下一下循环。
比如:
int a = 0;
while(a < 100) // 打印小于100的奇数
{
++a;
if(a % 2 == 0) // 如果a是偶数的话就不执行continue之后的语句
continue; // 也就是不执行printf
printf("%d ", a);
}
用在for里也是一样的,注意continue和break都是作用于循环体,如while、for和do while,而不是分支语句(switch)和条件体(if-else)。
int a = 100;
while(a > 0)
{
--a;
if(a % 2 != 0) // 在100内找最大的奇数
break;// 找到之后就跳出while循环
}
printf("%d", a);
switch中只能用break来结束case,比如:
char a = 'a';
switch(a)
{
case 'a':
printf("%c", a);
break;
default:
printf("\ndefault");
break;
}
打印出:
a
但如果你去掉case 'a'中的break:
char a = 'a';
switch(a)
{
case 'a':
printf("%c", a);
default:
printf("\ndefault");
break;
}
在case 'a'执行完毕之后它就会继续执行之后的case,直到遇到break或者switch的大括号末尾。
所以打印出:
a
default
如果你把default中的break去掉结果也相同。