C-如果用户按任何键,则如何返回开始



在代码中,用户将输入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);
    }
}

相关内容

  • 没有找到相关文章

最新更新