黑马程序员技术交流社区

标题: 运算符&和&&的区别 [打印本页]

作者: ._抬眉﹏    时间: 2014-4-11 11:16
标题: 运算符&和&&的区别
这两个运算符都这一作为逻辑与运算,(and)当运算符两边的表达式都是true得时候经过&运算之后结果为true
只要有一方为false,返回的结果就是false。
&可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。
&&
&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。If(x==33 & ++y>0) y会增长,If(x==33 && ++y>0)不会增长。
作者: H._张_♂    时间: 2014-4-11 11:23
&和&&的作用差不多,&&的左边如果为假,右边是不会判断的,&在任何情况下都会判断两边是否为true。在一般情况下,我们为了程序执行速度会选择&&。
作者: 363758086ed    时间: 2014-5-28 21:34
&和&&的作用差不多,&&的左边如果为假,右边是不会判断的,&在任何情况下都会判断两边是否为true。在一般情况下,我们为了程序执行速度会选择&&。
作者: qfch    时间: 2014-5-29 21:01
学习一下啊
作者: 高志鹏1    时间: 2014-6-6 12:07
本帖最后由 高志鹏1 于 2014-6-6 12:13 编辑

   &   可以当位运算符  也可以  当作逻辑与的运算符(只有当逻辑与是才有和&&区别一说)
   &--位运算符时:表示按位与运算
&--逻辑与时和&&的区别:&&具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式;&任何时候都会计算两个表达式





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