C语言初级问题 请教高手

来源:百度知道 编辑:UC知道 时间:2024/06/23 07:48:05
#include "stdio.h"
void main()
{ int x=1,a=0,b=0;
switch (x) {
case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf("\na=%d,b=%d",a,b);
}这个的运行过程是怎样的 我知道是先运行case1那个东西 但由于case1那一排后面没有break 所以要在执行case2 那执行完case2后在执行什么呢 要是case1后面有break 这个运行过程又是咋样的啊

运行结果:a=2,b=1

程序分析:本程序如果在printf语句结束后加上getch();
此时会出现如上结果.

由于x=1,所以执行case 1语句,此时a=1;由于没有break语句,
程序将继续执行,
因此,执行case 2语句,此时a=2,b=1

程序结束.

最后一个条件语句中,z最终被赋值为2啊,输出z

不管怎么样,加入break以后case 2 后面的b++不会会执行,break跳出switch语句;
如果现在的程序的话,就会执行case1以后的所有语句

第一种是a是2 b是1因为a执行了两次b执行了一次 第二种是a是1 b是0