int x=1;
int y = 2;
int z = 3;
y+=z--/++x;
System.out.print("x="+x+"y="+y+"z="+z);答案为啥:x=2y=3z=2  y为什么不是3.5

解决方案 »

  1.   

    int是整数,精度丢失了,要小数就用float
      

  2.   

     y+=z--/++x;
    y的最后结果肯定不会带小数点 ,java会自动去掉小数z--/++x ; // 相当于 3/2 ,即运算时 还是z还是3 ,而x已经进行了++ ,即x=2 ;
    做完后,才做 z--,此时 z =2
    int i =3 / 2 ; // i = 1 ;所以 y += z--/++x;
    相当于 y += 3/2 ;
    相当于 y += 1 ;
      

  3.   


    哎哟笨死了呀 这是昨天去面试的时候一道题   我一看是3.5呀 也没想到 int类型