C语言的switch语句, 并不具备循环功能。
要实现循环的话,就要使用for循环以及while循环等结构。但是执行这些语句要跳出switch从而实现循环的话,就要使用break; 就像楼主提问所说的那样。除非使用像一楼所说的那样,使用goto语句。但是这不符合结构化编程的要求。当程序复杂时会破坏计算机程序的明晰性、品质以及开发时间,从而出现面条式的代码。
所以,从这一点而言,switch就是只能break或者说从入口顺序执行下来的。
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
可以这样:
while(1)
{
switch(……)
{
case ……:
break;
case ……:
break;
default:
break;
}
}
switch外层再加一层循环就行了
switch是从入口顺序下来