黑马程序员技术交流社区

标题: switch 输入字母就死循环了,原因是什么??? [打印本页]

作者: sxakljf    时间: 2015-6-25 09:34
标题: switch 输入字母就死循环了,原因是什么???
#include <stdio.h>
int main (){

    //向顾客致欢迎词

    printf("欢迎您来到本店,本店厨师推出新菜品\n请点菜:输入菜品序号,谢谢\n");
    for(;;){
    int no =-1;

    scanf("%d",&no);

    switch (no){

        default:printf("本店厨师还在写代码\n");
        case (1):printf("宫爆鸡丁\n");break;
        case (2):printf("虎皮青椒\n");break;
        case 3:printf("番茄炒蛋\n");break;
        case 4:printf("青瓜炒丑蛋\n");break;
        case 5:printf("酱骨架\n");break;
        case 6:printf("爆炒鱿鱼\n");break;
        }
    }

    return  0;
}


作者: mazhichao    时间: 2015-6-25 18:50
你定义的是int类型的,为啥要输入字符呢?
作者: 李旭飞    时间: 2015-6-25 19:37
scanf接收的是整形,你输字符,肯定故障啊,至于原因,可能是按ascii走,可能是按16进制走,而你default没有break打断,肯定会一直输出他
作者: 丁铭检    时间: 2015-6-25 20:48
你这程序写的有点难懂。。
作者: bsx881220    时间: 2015-6-25 22:32
本来就是个死循环。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2