int x= 0,y = 10;
boolean w ;
w = (x!= 0) && y /x > 2;
System.out.println(x + "," + y + "," + w);
上述代码为什么不报错?

解决方案 »

  1.   

    a && b  如果a为false,则b不再计算
    a & b  不管a为true还是false,b都要计算一次
      

  2.   

    因为(x!=0)肯定为false则w为false,所以&&后面的东西是不用判断的
      

  3.   

    因为(x!=0)=w,而w 是boolean类型因此返回的结果false。
    y/x,x=0然而任意数字除零结果都为"0",因此y/x>0不成立结果返回false.故java运算方面没有什么错误