C语言,选择结构,switch语句
#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x)/*开关语句控制的这个x干吗用的?我看不懂...*/{case1:...
#include <stdio.h>
main()
{int x=1 , y=0, a=0,b=0;
switch(x) /*开关语句控制的这个x干吗用的?我看不懂...*/
{case 1 :switch(y)
{case 0:a++;break; /*这个地方,a++后a得1?不是参与运算后才自增1吗?不是还应该等于0吗?*/
case 1:b++;break;
}
case 2:a++;b++;break;/*case 2 是怎么回事?谁的值得2了??*/
}
printf("a=%d,b=%d\n",a,b);
}
C语言新手...谢谢各位前辈了先...
这个题的答案是 a=2,b=1
还是不明白,case 2 是怎么回事??不是有值为2才会执行case2么??大大们能不能讲的再明白一点??我真的很菜...>< 展开
main()
{int x=1 , y=0, a=0,b=0;
switch(x) /*开关语句控制的这个x干吗用的?我看不懂...*/
{case 1 :switch(y)
{case 0:a++;break; /*这个地方,a++后a得1?不是参与运算后才自增1吗?不是还应该等于0吗?*/
case 1:b++;break;
}
case 2:a++;b++;break;/*case 2 是怎么回事?谁的值得2了??*/
}
printf("a=%d,b=%d\n",a,b);
}
C语言新手...谢谢各位前辈了先...
这个题的答案是 a=2,b=1
还是不明白,case 2 是怎么回事??不是有值为2才会执行case2么??大大们能不能讲的再明白一点??我真的很菜...>< 展开
5个回答
2010-05-26
展开全部
switch后边括号里变量的值决定了switch的case分支语句的选择。你的程序中有两个switch选择,首先看外层的switch,由于x已经被赋值为1,所以程序会选择case 1所对应的语句执行。而case 1对应的语句是又是一个switch语句,此时的switch后边括号中的变量是y,由于y已经被赋值0,所以应该执行case 0所对应的语句,执行a++;后缀++是说执行完语句后变量值增加1.
最后答案是a=1,b=0;
int x = 1, y = 0, a = 0,b = 0;
switch (x)
{
case 1: switch (y) //首先跳转到这儿
{
case 0: a++; break; //接着跳转到这
case 1: b++; break; //不执行
}
break; //对于每个case语句,一定不要忘了break;
case 2: a++; b++; break; //不执行
}
最后答案是a=1,b=0;
int x = 1, y = 0, a = 0,b = 0;
switch (x)
{
case 1: switch (y) //首先跳转到这儿
{
case 0: a++; break; //接着跳转到这
case 1: b++; break; //不执行
}
break; //对于每个case语句,一定不要忘了break;
case 2: a++; b++; break; //不执行
}
展开全部
#include <stdio.h>
void main()
{int x=1 , y=0, a=0,b=0;
switch(x) /*开关语句控制的这个x干吗用的?我看不懂...*/
{case 1 :switch(y)
{case 0:a++;break; /*这个地方,a++后a得1?不是参与运算后才自增1吗?不是还应该等于0吗?*/
case 1:b++;break;
}
case 2:a++;b++;break;/*case 2 是怎么回事?谁的值得2了??*/
}
printf("a=%d,b=%d\n",a,b);
}
/*a=2,b=1*/
完全正确。
switch (x)
{
case 1: switch (y) //首先跳转到这儿
{
case 0: a++; break; //接着跳转到这
case 1: b++; break; //不执行
}
//跳出内switch(y) ,再执行外面switch(x)
case 2: a++; b++; break; //a=2,b=1
}
void main()
{int x=1 , y=0, a=0,b=0;
switch(x) /*开关语句控制的这个x干吗用的?我看不懂...*/
{case 1 :switch(y)
{case 0:a++;break; /*这个地方,a++后a得1?不是参与运算后才自增1吗?不是还应该等于0吗?*/
case 1:b++;break;
}
case 2:a++;b++;break;/*case 2 是怎么回事?谁的值得2了??*/
}
printf("a=%d,b=%d\n",a,b);
}
/*a=2,b=1*/
完全正确。
switch (x)
{
case 1: switch (y) //首先跳转到这儿
{
case 0: a++; break; //接着跳转到这
case 1: b++; break; //不执行
}
//跳出内switch(y) ,再执行外面switch(x)
case 2: a++; b++; break; //a=2,b=1
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
main()
{int x=1 , y=0, a=0,b=0;
switch(x) /*开关语句控制的这个x干吗用的?我看不懂...*/
{case 1 :
switch(y)
{ case 0:a++;break; /*这个地方,a++后a得1?不是参与运算后才自增1吗?不是还应该等于0吗?*/
/*因为x=1,所以会执行该语句,所以会执行a++,从而a变成1了*/
case 1:b++;break;
}
case 2:a++;b++;break;/*case 2 是怎么回事?谁的值得2了??*/
/*这个是与最前面的case 1:对应的shi switch(x),所以a和b都会自增1*/
}
printf("a=%d,b=%d\n",a,b);
}
/*这个程序人家可能是用来测试的吧,*/
main()
{int x=1 , y=0, a=0,b=0;
switch(x) /*开关语句控制的这个x干吗用的?我看不懂...*/
{case 1 :
switch(y)
{ case 0:a++;break; /*这个地方,a++后a得1?不是参与运算后才自增1吗?不是还应该等于0吗?*/
/*因为x=1,所以会执行该语句,所以会执行a++,从而a变成1了*/
case 1:b++;break;
}
case 2:a++;b++;break;/*case 2 是怎么回事?谁的值得2了??*/
/*这个是与最前面的case 1:对应的shi switch(x),所以a和b都会自增1*/
}
printf("a=%d,b=%d\n",a,b);
}
/*这个程序人家可能是用来测试的吧,*/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
x的当前值为1程序跳向事件1然后执行b++(再次调用其值自增1)break跳出当前语句指向case2 然后执行a++,b++ 应该是a=1,b=2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言选择结构之switch语句
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询