int x = 1 , y = 2 , z = 3;
 System.out.println(y+=z--/++x);以上为题目,请问结果输出? 麻烦给出理由java

解决方案 »

  1.   

    z--  -->2
    ++x  -->2
    y+=1 -->3
      

  2.   

    y = y + z--/++x
    y = y + 2 / 2
    y = 2 +1 = 3
      

  3.   

    3
    java的算法机制,先++ --,再乘除 ,之后再+- 最后等于   
    然而  ++ --在前面的话先加1减1再处理,反之是处理完了再加1减1
    此处可以:y+=z/(1+x) ---y=y+1.5=3.5,然而 y是int类型,和四舍五入不一样,直接把小数点后面的舍去
    所有最后输出的是3
      

  4.   

    ++a和a++可完全不同的哦,++a是先把a自增1,再进行其他运算或操作,而a++相反,它表示先进行运算再对a进行自增操作,--也是同样是道理。
    因为x,y,z都是int型变量,所以除大运算的结果也是int型的,故而z--/++x的结果为(3/2)=1,y=y+1=3,明白了吗?先要想清楚是先自增还是后自增