int main(void)
{
int x=1,a=0,b=0;
switch(x)
{
case 0: b++;
case 1: a++;
case 2: a++,b++;
}
printf("a=%d,b=%d\n",a,b);
return 0;
}
谁能告诉我为什么a=2,b=1;拜托了
这道题的关键在switch函数这里,因为x=1,所以函数可以这样看:
switch(1)1、现在开始进入switch函数。因为函数的判断条件是1,所在选择条件中从1的项开始运行,即a++;此时a=1,b=0;
2、因为函数中没有break语句,所以继续执行case 2。执行a++;b++
此时a=2,b=1;
3、输出a和b就是a=2,b=1了
注:
1、你要知道,如果判断语句能对应下面的选择语句,那么就要从配对的那句话开始执行,剩下的条件也必须执行完。
2、如果执行途中遇到了break,这时才会停止执行。例如:如果本题是这样:
switch(1)那么当程序执行玩case 1后就会停止switch语句了,而不会执行case 2
case 0: b++;
case 1: a++;
case 2: a++,b++;
0,1,2指的是什么