我的功能遇到了轻微的问题。当我输入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;
}
}
}
答案 0 :(得分:4)
该行
scanf("%d", &selection);
输入int
值,例如8
。但是在你的case
陈述中
case '8': break;
您正在测试字符值。请将所有case
语句更改为
case 8: break;
此外,您必须在首次测试之前初始化本地变量selection
。编译器应该警告过你。