黑马程序员技术交流社区
标题:
&与&&的区别
[打印本页]
作者:
程序猿小哲
时间:
2015-9-19 15:52
标题:
&与&&的区别
之前书上看到这个问题,没太在意,今天在朋友公司的java基础面试题上面又一次见到,我感觉貌似是个考点,特拿出来与马友分享一二,如不完全,请补充,谢谢!首先&拥有着两层含义,在这里最好都进行解释,&可能是位运算符,也可能是逻辑运算符;而&&是逻辑运算符。
&:位运算符,按位与;
&:逻辑运算符,无论左边结果如何,右边都会参与运算;
&&:逻辑运算符,若左边结果为false,右边不参与运算,直接为false,
短路与
补充一下,|与||的区别和上述相似
||:若左边为true,则右边不参与运算,直接为true,
短路或
。
PS:个人觉得这个考点主要还是区分两个都是逻辑运算符的情况下,使用区别。不过多年考试经验来看,多写无害。。。
作者:
横溢天使
时间:
2015-9-19 16:08
楼主不妨举个例子,我想会更加的具体
作者:
程序猿小哲
时间:
2015-9-19 17:08
横溢天使 发表于 2015-9-19 16:08
楼主不妨举个例子,我想会更加的具体
嗯,好,举个例子
位运算:3&5
0011
& 0101
= 0001
所以,3&5=1;
逻辑运算:
if(x!=3 & ++y>0),这时,y会自增;
if(x!=3 && ++y>0),这时,y不会增长
作者:
横溢天使
时间:
2015-9-19 17:18
谢谢楼主
作者:
程序猿小哲
时间:
2015-9-19 17:37
横溢天使 发表于 2015-9-19 17:18
谢谢楼主
呵呵,一起学习!!!
作者:
ln0491
时间:
2015-9-19 18:46
学习学习。。。。。。。。。。。
作者:
marcojam
时间:
2015-9-19 21:45
几年前考二级c的时候就考过这道题
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2