当a=1,b=2,c=3时,以下if语句执行后,a 、b、 c 中的值分别为()()()if(a>c)b=a;a=c;c=b;答案是3、2、2,
问题描述:
当a=1,b=2,c=3时,以下if语句执行后,a 、b、 c 中的值分别为()()()
if(a>c)
b=a;a=c;c=b;
答案是3、2、2,
答
if不成立则 下一个分号前的语句不执行 既只执行 a=c;c=b
c的值3赋给a
b的值2赋给c
b不变
既 a=3 b=2 c=2
答
if(a>c)
b=a; //if不成立,所以这一句不执行 b=2
//下面不是在if条件下执行的
a=c; //a=3
c=b; //c=2
答
if(a>c)
b=a;
a=c;
c=b;
这种方式看起来更易于理解一些吧.
其实前两句话是一起的,if语句到第一个“;”就结束了.
后两句是各自独立的.
首先a>c这个不成立,所以 b=a这个就不会被操作,而是自动跳过去.
然后a=c;是将c的值赋予a,也就是此时a=3,c的值不被改变.
然后c=b;是将b的值赋予c,也就是此时c=2,b的值不被改变.
所以最终结果是c=3,b=2,c=2.
不知道这么说你能理解不.