键入case时,case case菜单不会退出程序

时间:2019-11-11 21:36:39

标签: c

我已经为带有菜单的计算器编码。我正在尝试使用switch case。我的问题是,当程序询问值时,菜单不会在情况0下立即退出。

#include<stdio.h>
int main(void) {
        float a = 0;
        float b = 0;
        int menu = 0;
        mainMenu();
        scanf_s(" %d", &menu);
        printf("Give a A:\n");
        scanf_s(" %f", &a);
        printf("Give a B:\n");
        scanf_s(" %f", &b);
        switch (menu) {
        case 0: {
            printf("Choice: 0\n");
            puts("Goodbye");
            break;
        }
        case 1: {
            printf("Choice: 1\n");
            printf(" %f", add(a, b));
            break;
        }
        case 2: {
            printf("Choice: 2\n");
            printf(" %f", sub(a, b));
            break;
        }
        case 3: {
            printf("Choice: 3\n");
            printf(" %f", mul(a, b));
            break;
        }
        case 4: {
            printf("Choice: 4\n");
            printf(" %f", div(a, b));
            break;
        }
        default: {
            printf("No action selected\n");
            break;
        }
        }
        return 0;
}

1 个答案:

答案 0 :(得分:1)

scanf_s(" %d", &menu);
if (menu == 0)
{
    printf("Choice: 0\n");
    puts("Goodbye");
    return 0;
}

您需要检查菜单输​​入是否为零或否。如果菜单的输入为零,则从那里返回。您无需深入了解其余输入。

按照@bruceg的评论,从开关中删除case 0