关于一道C语言的问题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);

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 08:52:26

关于一道C语言的问题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);
关于一道C语言的问题
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);

关于一道C语言的问题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);
楼主在书写程序时注意下格式,好让我们看的容易,也便于回答!
呵呵
我给正确的书写了一遍为:
#include
void main()
{
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);
}
此程序的欲行结果为a=2 b=1.
解释:这里用了一个switch case语句,因为这里的x的初值是1,所以第二个case符合条件,所以执行a++,得到a=1;但执行完后,case后没有break语句,所以不跳出switch语句继续执行下面的case,既执行第三个case语句,a++,b++得到a=2,b=1;执行完所有case后就跳出switch语句,最后输出a和b,得到最终答案!
楼主明白了吗?
如果只要执行x对应的某一个case,那么在case后面要加break跳出switch语句,不然会执行所有的case!具体操作如下:
#include
void main()
{
int x=1,a=0,b=0;
switch(x)
{
case 0:b++;break;
case 1:a++;break;
case 2:a++,b++;break;
}
printf("a=%d,b=%d\n",a,b);
}