代码第14行,methodB(4)被执行,j+=k; 这时j变成了4。
代码第16行,由于i<10是true,所以method(8)是没有被执行的。
这里就涉及到一个概念,那就是在或(||)操作的时候,如果前面任一个表达式为true,则后面的表达式都不会被执行,因为不影响最终结果。
同理,在做与(&&)操作的时候,如果前面任一表达式为false,则后面的表达式都不会被执行。
第14行是按位或,不受影响。
因为在java中做了优化,如果A||B中A是真的话,B就不运行了。所以第二句b = i<10 || methodB(8) 因为i < 10是真,所以methodB(8)根本没有运行,所以j也没有改变。
b=i<10||method(4);
当i=0时 i<10为true
而true || 任何东西 结果都为true , 所以计算机不会继续计算methodB(4)的结果,所以j+=k根本就没有执行 所以结果j=0;
|| , | ,都为或者的意思,只要一边为真,则为真,但是||,也称短路或,i<10,若为真,则不去判断另一边的对错