switch的用法是判断case后面的表达式和switch后面的表达式是否相匹配,一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。
void main()
{
int n='e';
switch(n--)
{
default: printf("error ");
case 'a':
case 'b': printf("good ");break;
case 'c': printf("pass ");
case 'd': printf("warn ");
}
}
n-- 先判断n,再n=n-1;
这题两个考点,一个是switch...case...的用法,另一个是n--和--n的区别。
因为n='e',没有任何一个相符,走default这一分支,打印出 error ,
然后不管后面的case内容是否匹配,依次执行,直到遇到break语句。
所以 case a: 后面没有内容不执行任何内容,
然后 case b: 打印出 good ,然后碰到break语句,跳出switch语句。
因此,答案选C error good
C,因为你是后置运算,先执行default,又因为其后没有break,继续执行
case 'a':
case 'b'
选C,这个问题里面的default运行的原因是 n-- 是先进行判断然后才给n赋值,区分--n,这个是先赋值然后判断