记得不太清楚了对于1:如果满足i<10继续验证methodB(4)
对于2:如果满足i<10则不再验证后面的对于3:如果不满足i<10还继续验证methodB(4)
对于4:如果不满足i<10则不再验证methodB(4)

解决方案 »

  1.   

    1、if( i < 10 | methodB (4));无任什么条件下两个条件都要比较
    2、if( i < 10 || methodB (8));当i<10为真时,就不在执行methodB(8)方法了;
    3、if( i < 10 & methodB (4));无任什么条件下两个条件都要比较
    4、if( i < 10  && methodB (8));当i<10为假时,就不在执行methodB (8)了
     
      |、&运算符的两端都会执行的,而||当第一个条件为真时,后面的就不成执行,整个表达式就为真。&&:当第一个条件为假时,后面就不在执行,整个表达式就为假。
      

  2.   

    |和&是位操作符
    ||和&&是逻辑操作符
    它们要两个操作数,
    |和&的操作数可以是任意基本类型,它们是按位进行运算的
    如 110|100=110  110&100=100
    而||和&&的操作数只能是boolean。
      

  3.   

    只是有微小的差别,举个例子int i=0;
    String s=null;
    1 if(i>10&&s.equals("ss"))
    2 if(i>10&s.equals("sa"))对于1不会有什么问题,因为在验证了i>10为fale后不再验证后面的。对于2则会抛出NullPointException,虽然i>10为false,继续验证s.equals("sa"),因为s为null,所以抛出错误。
    ---------------------------------
    以上结论未加验证,还请自己验证。