黑马程序员技术交流社区

标题: |、&与||、&&的区别 [打印本页]

作者: huanxiang0220    时间: 2015-2-23 02:54
标题: |、&与||、&&的区别
    &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。而我们在开发中,遇到&或者|  我可以将他们转换成双&、双||,这样可以提高效率,原由是:
           当表达式&&左边的结果是false时,发生短路,不用在计算右边的表达式,整个结果都为false。
           当表达式||左边的结果是ture时,发生短路时,不用在计算右边的表达式,这个结果为true。
代码体现:
   &与&&:

Java代码
if(expression1 & expression2){}  
中expression1 和expression2 无论expression1返回true还是false,都会继续判断expression2的返回值  


Java代码
public class Test4{   
    public static void main(String args[]){   
        if(10==10||10/0==0){   
            System.out.println("条件满足") ;   
        }   
    }   
};  
   



|与||
Java代码
public class Test4{   
    public static void main(String args[]){   
        if(10==10||10/0==0){   
            System.out.println("条件满足") ;   
        }   
    }   
};  
   


这个程序执行会报错,因为程序会去判断每一个表达式,而下面:

Java代码
public class Test4{   
    public static void main(String args[]){   
        if(10==10||10/0==0){   
            System.out.println("条件满足") ;   
        }   
    }   
};  
   
作者: 彭春晓    时间: 2015-2-23 08:54
学习了。
作者: liu1098    时间: 2015-2-23 13:39
兄弟,你黑马币换一下技术分,基本上就够25了,恭喜啊,哈哈。
作者: liaohongjie    时间: 2015-2-23 16:18
恩恩,谢谢分享!!!!!!
作者: 浮夸    时间: 2015-2-23 17:15
赞一下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2