C语言的switch语句中 用break和continue来结束case语句有什么不同?

大家帮帮忙吧!谢谢!
2025-02-22 13:52:22
推荐回答(1个)
回答1:

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去掉结果也相同。