黑马程序员技术交流社区

标题: & 和 &&区别 [打印本页]

作者: 黯然销魂    时间: 2014-5-22 10:08
标题: & 和 &&区别
& 和 &&区别: & :无论左边结果是什么,右边都参与运算。         &&:短路与,如果左边为false,那么右边不参数与运算。
   | 和|| 区别:|:两边都运算。       ||:短路或,如果左边为true,那么右边不参与运算
作者: 小叔    时间: 2014-5-22 10:18
不错           ,
作者: 丁绍然    时间: 2014-5-22 11:05
这是什么情况,水贴么
作者: 茄子    时间: 2014-5-22 12:10
大家水平不一样,难道非要整那些你看不懂的,才不是水贴吗
作者: pray    时间: 2014-5-23 01:15

不错   
作者: 927233671    时间: 2014-5-23 07:18
支持一下
作者: 流沙    时间: 2014-5-23 07:22
自己发帖自己给自己加黑马币:funk:
作者: 悟空、孙    时间: 2014-6-24 11:53
nice,不错不错………………
作者: 韩鹏    时间: 2014-6-24 12:13
顶一个!
作者: 001可望成功    时间: 2014-6-24 13:57
哈哈,这样也可以啊

作者: 滔哥    时间: 2014-6-24 14:19
1楼2楼,同ip转移黑马币,已经清零!望珍重!
作者: 天,殇心    时间: 2014-6-25 23:19
  &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
  &&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。If(x==33 & ++y>0) y会增长,If(x==33 && ++y>0)不会增长
&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x01 & 0x0f的结果为0x01。
作者: NOTHANKYOU    时间: 2014-8-7 18:32
                   加金币
作者: GYSWL    时间: 2014-8-8 07:15
& 和 &&
相同点:两边同为true是为true。其他为false.
区别:
& :无论左边结果是什么,右边都参与运算。
&&:短路与,如果左边为false,那么右边不参数与运算。

| 和||
相同点:两边同为false是为false。其他为true.
区别:
|:两边都运算。       ||:短路或,如果左边为true,那么右边不参与运算
作者: 毛富强    时间: 2014-8-20 20:53
原来是这样。。
作者: yl82846094    时间: 2014-8-26 18:55
下面的回复都比LZ的贴要好!
作者: 段sir!    时间: 2014-9-14 22:53
int a=10,b=20;
作者: 段sir!    时间: 2014-9-14 22:55
注意考点,是如果自增或者自减,用在短路与右边,左边为false,右边是短路的,右边的自增或者自减就无效,数值不变。
作者: 风声相伴    时间: 2014-9-15 13:58
茄子 发表于 2014-5-22 12:10
大家水平不一样,难道非要整那些你看不懂的,才不是水贴吗

说的不错
作者: 千里马    时间: 2014-10-4 13:42
总结得不错,一看就理解啦!
作者: liu951753xz    时间: 2014-10-7 21:57
短语与非短路的区别,大致意思就你说的这样了
作者: gaouj    时间: 2014-10-20 13:12
eneneneneen
作者: 计算机小菜鸟    时间: 2014-10-30 22:48
说的不错!!!!!!
作者: rettey    时间: 2014-12-8 10:14
了解下!!!!
作者: Hello_Boys    时间: 2014-12-24 00:15
&:第一个成立了,就不用执行它后面的条件了。&& :必须同时满足它前后两个条件,程序才执行。
作者: 王者之风西昆仑    时间: 2014-12-26 21:50
总结的还是不错滴
作者: pj1988    时间: 2015-1-5 23:20
顶一个。。。。。。。。。。
作者: xp1992xp    时间: 2015-1-12 09:32
一个是逻辑与,一个是位与,两者比较关系不同 吧
作者: 齐宁宁    时间: 2015-1-14 15:38
&,是单目运算,表示位运算;&&是双目运算,表示逻辑与
作者: pj1988    时间: 2015-1-15 11:12
这个帖子比较有水准,不过我答不上,看来你们都是大神。
作者: wenyu    时间: 2015-2-12 14:43
|和||都表示或运算,但是|的左边无论真假右边仍然执行,而||的左边为真,右边就不执行了
具体可用下面这个代码测试:
  1. public class Demo {

  2.         public static void main(String[] args) {
  3.                 int x = 1;
  4.                 int y = 3;
  5.                 //if(x>0||y++<2)
  6.                         System.out.println(y);
  7.                 if(x>0|y++<2)
  8.                         System.out.println(y);

  9.         }

  10. }
复制代码

同理可以验证&于&&的区别
作者: 新生小周    时间: 2015-3-10 18:05
        //& 与  &&的区别
                        /* &  : 无论左边是真是假,右边都运算
                         * && : 当左边为假时,右边不运算
                         * */
作者: 黑马小夏    时间: 2015-3-12 00:09
已经学习,感学楼主
作者: 野马奔腾    时间: 2015-3-23 20:06
在某种程度上可以节省运算时间  
作者: 18703933672    时间: 2015-3-30 01:06
说的很好,希望经常总结
作者: 屠赞华    时间: 2015-4-2 23:26
很对 不过是不是简单了点
作者: 叶松ye    时间: 2015-4-5 13:03
理解啦。
作者: jiatengde    时间: 2015-5-20 23:04
对于牛犊子都不是的自己,很有帮助!!
作者: 307323665    时间: 2015-5-26 17:31
说的很细节。对我这种基础差的来说,很有帮组
作者: wx_iAuO26mH    时间: 2015-6-5 10:27
不错 讲的挺明白的
作者: javazhang    时间: 2015-6-6 22:23
1楼2楼,同ip转移黑马币,已经清零!望珍重!
作者: javazhang    时间: 2015-6-6 22:29
&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
  &&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。If(x==33 & ++y>0) y会增长,If(x==33 && ++y>0)不会增长
&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x01 & 0x0f的结果为0x01。
作者: 繁华落尽    时间: 2015-6-27 07:33
赞一个,说的不错
作者: 俏皮雅轩    时间: 2015-9-10 09:51
谢谢分享  很有用
作者: 卓依    时间: 2015-10-11 12:39
简单,明了
作者: daividtu    时间: 2015-11-7 21:24
不错。。。。。。。。。。。。。。。。。。。
作者: 臭小子    时间: 2015-11-18 11:35
对于初学者来说   这个也是要掌握的啊   不能说是水贴吧
作者: gongyouqiang    时间: 2015-12-16 22:05
每天让自己过得充实点,加油!
作者: 小曼_r9qDE    时间: 2015-12-18 21:51
这是要做什摸呢
作者: 阿昆    时间: 2016-1-24 19:25
&与&&的区别,&、|:无论左边结果是什么,右边都参与运算。   
作者: 2016as    时间: 2016-1-28 16:46
一般都用双&&
作者: byb442230    时间: 2016-2-22 11:00
这种问题适合我这个刚学的人
作者: ZZT    时间: 2016-4-11 01:53
good,这回就因该记住了
作者: wanli316644570    时间: 2016-4-12 13:17
楼主解释的不错 顶
作者: 老人与海    时间: 2016-4-16 13:30
&和&&的区别:1.&&在左边结果为false时,右边停止执行,节省了运行时间。2.&可作为位运算符,&&不具备此功能!
作者: innovator    时间: 2016-5-17 13:40
虽然相对来说是较为简单的话题,不过能激起大家的分享和讨论就是好贴...进来还是学到一些东西的
作者: fanhongwei1105    时间: 2016-5-23 23:51
nice,不错不错………………
作者: 请叫我南审    时间: 2016-6-21 00:54
不错,顶一个
作者: chentudong    时间: 2017-3-23 00:12
&有false则false,只有两边为true结果才为true,&&有短路功能,只要左边条件为false,右边就不参与运算。




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