开关盒内环

时间:2016-10-13 18:30:21

标签: c while-loop switch-statement

我的功能遇到了轻微的问题。当我输入8时,我希望它退出。但是当我输入8时,它会输出我的默认信息然后退出。我错过了什么?

void Selection()
{
    int selection;

    while (selection != 8)
    {
        printMenu();
        scanf("%d", &selection);
        switch (selection)
        {
            case '1': /*FUNCTION HERE*/ ; break;
            case '2': /*FUNCTION HERE*/ ; break;
            case '3': /*FUNCTION HERE*/ ; break;
            case '4': /*FUNCTION HERE*/ ; break;
            case '5': /*FUNCTION HERE*/ ; break;
            case '6': /*FUNCTION HERE*/ ; break;
            case '7': /*FUNCTION HERE*/ ; break;
            case '8': break;
            default: printf("Unkown command please try again.\n"); break;
        }
    }
}

1 个答案:

答案 0 :(得分:4)

该行

scanf("%d", &selection);

输入int值,例如8。但是在你的case陈述中

case '8': break;

您正在测试字符值。请将所有case语句更改为

case 8: break;

此外,您必须在首次测试之前初始化本地变量selection。编译器应该警告过你。