C语言中,switch如何完成只执行一个case的循环啊?

2024-11-03 02:33:37
推荐回答(5个)
回答1:

C语言的switch语句, 并不具备循环功能。

要实现循环的话,就要使用for循环以及while循环等结构。但是执行这些语句要跳出switch从而实现循环的话,就要使用break; 就像楼主提问所说的那样。除非使用像一楼所说的那样,使用goto语句。但是这不符合结构化编程的要求。当程序复杂时会破坏计算机程序的明晰性、品质以及开发时间,从而出现面条式的代码。

所以,从这一点而言,switch就是只能break或者说从入口顺序执行下来的。

回答2:

goto 就是啦。

Lab1:
switch ( ..){
case 1: ...; goto Lab1;break;
case 2: ...; goto Lab1;break;
case 3: ...; goto Lab1;break;
case 4: ...; goto Lab1;break;
default: break;
}
==============
例如:
#include
main( )
{
int x=1;
Lab1:
printf("x=%d\n",x);
switch (x){
case 1: x++; goto Lab1;break;
case 2: x++; goto Lab1;break;
case 3: x++; goto Lab1;break;
case 4: x++; goto Lab1;break;
default: break;
}
printf("x=%d\n",x);
return 0;
}

输出:
x=1
x=2
x=3
x=4
x=5
x=5

回答3:

可以这样:
while(1)
{
switch(……)
{
case ……:
break;
case ……:
break;
default:
break;
}
}

回答4:

switch外层再加一层循环就行了

回答5:

switch是从入口顺序下来