在代码中,用户将输入1或2或3,并且将由Getch进行,此后该程序将输入切换。...但是我有问题应用任何开关情况后,如果用户按任何键,我想将程序重新回到开始?
C语言对我来说仍然是新的,所以如果您在 简单的方式
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
int main(void) {
char L;
while (1) {
L = getch();
switch (L) {
case '1':
system("cls");
printf("111111111111111");
break;
case '2':
system("cls");
printf("222222222222222");
break;
case '3':
system("cls");
printf("33333333");
break;
default:
sleep(0);
}
}
return 0;
}
使用do
-while
循环并将条件设置为while(L != '1' && L != '2' && L != '3');
:
do {
L = getch();
switch (L) {
case '1' :
system("cls");
printf("111111111111111");
break;
case '2' :
system("cls");
printf("222222222222222");
break;
case '3' :
system("cls");
printf("33333333");
break;
default :
sleep(0);
}
} while(L != '1' && L != '2' && L != '3');
上面的代码将首先提示数据,然后对其进行评估,然后继续使用,直到用户输入'1'
,'2'
或'3'
。
作为评论,bellow提及 sleep(0)
的 default
案例没有用,但可以改进,例如如下:
do {
L = getch();
switch (L) {
case '1' :
system("cls");
printf("111111111111111");
break;
case '2' :
system("cls");
printf("222222222222222");
break;
case '3' :
system("cls");
printf("33333333");
break;
default :
L = 0;
}
} while(!L);
在此示例中,您不必仔细检查允许的值(假设您不想在L == 0
时使用情况(。
作为您的问题的标题有些误导,也许我不明白您想实现什么。如果您只想暂停回到循环的开头,则可以在switch
块之后添加额外的getch()
:
while (1) {
L = getch();
switch (L) {
case '1':
system("cls");
printf("111111111111111");
break;
case '2':
system("cls");
printf("222222222222222");
break;
case '3':
system("cls");
printf("33333333");
break;
}
printf("Press Any Key to Continue...");
getch();
}
如果这仍然没有回答您的问题,我建议您改进它。
您可以用while
循环包裹开关案例。例如:
int done = 0;
while(!done) {
L = getch();
switch (L) {
case '1' :
system("cls");
printf("111111111111111");
done = 1;
break;
case '2' :
system("cls");
printf("222222222222222");
done = 1;
break;
case '3' :
system("cls");
printf("33333333");
done = 1;
break;
default :
sleep(0);
}
}