如果用户按除 1 或 2 或 3 以外的任何键,如何返回开始?

貂貂

在下面的代码中,用户将输入 1 或 2 或 3,它会被 getch 获取,然后程序将进入 switch ....如果用户按任意键回到开头?

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'


正如下面的评论提到的default案例sleep(0)没有用,但可以改进,例如如下:

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);

在此示例中,您不必仔细检查允许的值(假设您不想使用 case when L == 0)。


由于您的问题标题有点误导,也许我不明白您想要实现什么。如果您只想暂停回到循环的开头,您可以getch()switch之后添加一个额外

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();
}

如果这仍然不能回答您的问题,我建议您改进它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果1 = 2 = 3那么(...)如何工作

如果我知道1 + 2 + 3 + .. + n = n *(n + 1)/ 2的结果,如何得到n?

如何在R中将数据1 1 2 2 3 3拆分为1 2 3 1 2 3?

如果输入是:y = 1(x ^ 3)+0.05(x ^ 2)-2(x ^ 1)-1如何从此std :: string获取数字?

如何使用嵌套的for循环返回字符串“ 1 + 2 + 3 + .. 1 + 2 + 3 + .. 1 + 2 + 3 + ..”?

如何知道列表中的数字是否按升序排列(例如:1、2、3、4、5 等)而不跳过任何数字

选择列表,其中包含按1、2、3、4键的选择值

按情况订购以获取此信息:-1,-2,-3、0,+ 1,+ 2,+ 3

为什么len([1,[2,[3]]]])返回2,而len([1,[2]])也返回2?

如何1 2 3来在结束了吗?

为什么3> 2> 1返回false,而1 <2 <3返回true?

如何在python中按索引1,2,3 ..过滤<str>

如何过滤 <str> 并在 python 中按索引 1,2,3 .. 过滤它

为什么`“%,2,%”之类的“,1,2,3,”`返回零?

为什么JavaScript数组操作[1,2,3,4] [1,2]返回3?

select()将如何返回-1、0或1以外的任何值?

为什么 a[1:-1:-1] 和 a=[1,2,3] 返回 []?

程序排除1,2,3以外的数字

如何在Ruby中将“ [1,2,3]”转换为[1,2,3]

如何将 char(例如 "[1, 2, 3]" )转换为列表(例如 [1, 2, 3])

如何將 [1,2,3] 轉換為 [[1],[2],[3]]?

如何计算定义为1 ^ 2 + 2 ^ 2 + 3 ^ 2 + ... + n2的平方和的值,直到达到用户指定的和

如何使Python读取用户输入函数?(例如f(x)= 2x ^ 2 + 3x + 1)

按字母顺序按字母顺序排列字符串A1-1-1,A1-2-1,A1-10-1,A1-2-2,A1-2-3等

如何使PHP返回“ 1 + 2 = 3”,而不仅仅是3?

如何在SAS中比较均值(µ1 + µ2 + µ3)/ 3 =(µ3 + µ4)/ 2:使用'ESTIMATE'或'CONTRAST'?

如何在除[0,1]以外的域中使用d3比例色函数?

vector <int> + = 1,1,2,2,2,3,4,5,6如何; 可能?

如何绘制方程式(x ^ 2 + y ^ 2-1)^ 3 = x ^ 2 * y ^ 3?