应该是4,因为在Java中,&&和||是按“短路”方式进行求值的,即:对于&&,例如A&&B,如果A的值为假,那么B就不再计算。对于||,例如A||B,如果A的值为真,那么B也就不再计算。所以对于你的代码,methodB(8)并没有被执行。

解决方案 »

  1.   

    注意区别“|”和“||”
    当用“||”进行运算的时候, 如第一个表达式为真,则不进行第二个表达式的运算,因为如果第一个表达式为真, 不管第二个表达式为何,整个表达式的值都是真, 所以,b=i<10||methodB(8);在这一句中,只运行了,i<10,methodB(8),而没有进行计算。
    “|”这个是将两边的都进行运算。
      

  2.   

    对!
    “|”是按位OR,它是Bitwise operators(位运算符),将两边的BIT按位与产生结果。
    “||”是逻辑OR,它是Logical operators(逻辑运算符),如果第一个值为TRUE,不论后面的值是什么,则按OR操作结果都是TRUE,JAVA就不在继续运行后面的表达式了。