第一个,我输入2,执行结果就应该为
B
C
D
E
因为a==2则入口从printf("B\n")开始,到break结束。没有break则输出所有。
第二个,'2' 是字符,不是2。字符应该用ASCII码。'2'的ASCII码是50,而A,B,C,D,E的ASCII码分别是65,66,67,68,69,没有符合情况,所以运行default语句,输出error\n。
第一个是因为case2时没有break掉执行到case5才停止!
第二个嘛你那个case'2'中2是字符啦(类型不同啦),按照ASCII码应该是50啦!所以就这样罗!
请注意第一段是用 case 2,第二个程序是case '2'
'2'是一个字符,在ASCII里'2'=50.所以执行的是 default:printf("error\n");这段代码