黑马程序员技术交流社区
标题: 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 |