驱魔人第二季百度百科:问大家一个小程序

来源:百度文库 编辑:高考问答 时间:2024/04/30 21:49:04
#include "stdio.h"
main()
{
char ch;
scanf("%c",&ch);

switch(ch){
case 'a':printf("a selcted\n");break;
case 'b':
case 'c':printf("b,c selcted\n");break;
default:printf("Not a valid chioce!\n");break;

}
}
为什么输入b后,打出“b,c selcted”?
如果是b,进行下一条语句判断,既然不是c,为什么会输出casec那条语句呢?

case 'b'没有写处理语句的话,程序会进入接着的那个case段, 如果接着的case段仍然没有写处理语句,则继续查找直到进入某个写了处理语句的case段,并执行该case段的处理语句。在本程序中,case 'b'没有处理语句,则程序找到case 'c',发现有处理语句,则执行case 'c'的执行语句。

因为b那条语句里没有break,程序会继续向下执行,直到遇到break或者switch结束

你的程序的意思就是输b,c,都输出b,c sekcted\n

因为case \'b\'没有break呀!
有这样的问题关键是一定要真正理解和掌握这条语句的语法。swith语句的执行功能就是这样的。建议多看看基本的东西呀。

b那里没有break

基础太差!书本都没有仔细看过!