int x=1,a=0,b=0;switch (x){case 0:b++;case 1:a++;case 2:a++;
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/11 05:37:23
int x=1,a=0,b=0;switch (x){case 0:b++;case 1:a++;case 2:a++;b++;} printf("%d,%d",a,b);
为啥是2,1 我算的是1,0
为啥是2,1 我算的是1,0
switch 语句中,case只是找到入口点,从该入口点开始所有的case都会执行,通常说它具有穿透性,如果想只执行某个case下面的代码,要在后面加上break,表明中断处理.
#include
int main()
{
int x=1,a=0,b=0;
switch (x)
{
case 0:
b++;
case 1://x=1,所以,从这里入口开始往下执行
a++;//a变成1
case 2:
a++;//a变成2
b++;//b变成1
}
//最后输出为2,1
printf("%d,%d",a,b);
return 0;
}
//加上break语句就会中断处理了,如:
int x=1,a=0,b=0;
switch (x)
{
case 0:
b++;
break;
case 1://x=1,所以,从这里入口开始往下执行
a++;//a变成1
break;//中断
case 2:
a++;
b++;
break;
}
这时候算出来的结果就是1,0了.
再问: 我的意思是a++不是运算完在自增1么 那不就是说再case2的时候虽然是++ 但是 自增的时候不在printf之内?
再答: 到printf的时候,所有的计算都完成了。。。
再问: 意思是不管前面是不是a++ 还是++a 只要打printf了 就算是a++也要也要printf出最后的结果既a自增1后的结果?
再答: 你自己看看代码嘛,你printf a和b的时候,a和b计算早就结束了,跟前增还是后增没有任何关系的。除非是在它正在计算的时候取它的值。比如 int i=0,a=1; i=++a;//前自增,先增加再返回值,所以,i值为2,a为2 i=a++;//后自增,取自增之前的值,再自增,i为1,a为2 后面i的值不同,但a的值是一样的
#include
int main()
{
int x=1,a=0,b=0;
switch (x)
{
case 0:
b++;
case 1://x=1,所以,从这里入口开始往下执行
a++;//a变成1
case 2:
a++;//a变成2
b++;//b变成1
}
//最后输出为2,1
printf("%d,%d",a,b);
return 0;
}
//加上break语句就会中断处理了,如:
int x=1,a=0,b=0;
switch (x)
{
case 0:
b++;
break;
case 1://x=1,所以,从这里入口开始往下执行
a++;//a变成1
break;//中断
case 2:
a++;
b++;
break;
}
这时候算出来的结果就是1,0了.
再问: 我的意思是a++不是运算完在自增1么 那不就是说再case2的时候虽然是++ 但是 自增的时候不在printf之内?
再答: 到printf的时候,所有的计算都完成了。。。
再问: 意思是不管前面是不是a++ 还是++a 只要打printf了 就算是a++也要也要printf出最后的结果既a自增1后的结果?
再答: 你自己看看代码嘛,你printf a和b的时候,a和b计算早就结束了,跟前增还是后增没有任何关系的。除非是在它正在计算的时候取它的值。比如 int i=0,a=1; i=++a;//前自增,先增加再返回值,所以,i值为2,a为2 i=a++;//后自增,取自增之前的值,再自增,i为1,a为2 后面i的值不同,但a的值是一样的
int x=1,a=0,b=0; switch(x) { case 0:b++; case 1:a++; case 2:
{int x=1,a=0,b=0;switch(x){ case 0:b++; case 1:a++; case 2:a
int x=1,a=0,b=0;switch (x){case 0:b++;case 1:a++;case 2:a++;
main() { int x=1,a=0,b=0; switch(x){ case 0:b++; case 1:a++;
关于一道C语言的问题int x=1,a=0,b=0; switch(x) { case 0:b++; case 1:a+
main() { int x=1,a=0,b=0; switch(x) { case 0:b++; case1:a++;
switch(a*a+b*b); { case 3 :case 1 :y=a+b; break; case 0 :y=b
#include main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: s
#include main() { int x=1,y=0,a=0,b=0; switch(x) { case
main() {int a=2,b=7,c=5; switch(a>0) {case 1:switch(b0)
下列程序的输入结果是 main() {int x=1,a=0,b=0; switch(x){case 0:b++; ca
有如下程序,该程序的输出结果是( ) main0 { int x=1,a=0,b=0; switch(x){ case