黑马程序员技术交流社区
标题:
&和&&的区别
[打印本页]
作者:
高贵杰
时间:
2013-2-4 13:39
标题:
&和&&的区别
本帖最后由 张向辉 于 2013-2-6 15:22 编辑
关于&和&&的区别,虽然是很简单的问题,但是希望大家能一起复习一下小知识点
作者:
李洪因
时间:
2013-2-4 13:51
本帖最后由 李洪因 于 2013-2-4 13:52 编辑
这么说吧:A&B的话,无论A是否是真,它都会去判断B的。A&&B的话,如果A是真的,它才会判断B,相反的,A是假的话,它就不去判断B了,直接认定是假了!
例子:
public class Aa {
public static void main(String[] args) {
int i = 5 ;
if( i > 6 & ++i > 6 ){
System.out.println ( "这里使用&");
}
System.out.println( i );
}
}
这时候i的值为6;
public class Aa {
public static void main(String[] args) {
int i = 5 ;
if( i > 6 && ++i > 6 ){
System.out.println ( "这里使用&&");
} System.out.println( i );
}
}
这时候i 的值为5;
复制代码
作者:
张庚
时间:
2013-2-4 13:54
&&:
和&运算的结果是一样的。但是运算过程有点小区别。
&:无论左边的运算结果是什么,右边都参与运算。
&&:当左边为false时,右边不参与运算的。
||:
和|运算的结果是一样的。但是运算过程有点小区别。
|:无论左边的运算结果是什么,右边都参与运算。
||:当左边为true时,右边不参与运算的。
作者:
丁强强
时间:
2013-2-4 17:42
本帖最后由 丁强强 于 2013-2-4 18:02 编辑
简单来说:
一个& 例:
for(int a= 0; 0<a & a<10)
使用1个&时,会先判断0<a ;false,继续判断 a<10。
一个& &例:
for(int a= 0; 0<a && a<10)
使用2个&&时,会先判断0<a ;false,不继续判断a<10
在for(int a= 0; 0<a && a<10)里面使用了&&这样
就是优化的代码。
比如你跟一个qq好友视频聊天,你的要求是女的,24岁
你跟他开启视频一看,呀是男的,那还果断关闭小窗口,
难道你还要在问他今年24岁吗?
问了不就多此一举了吗,所以建议需要&的时候只使用&&。
作者:
逍林游
时间:
2013-2-4 18:21
逻辑与、位与
作者:
杨芳
时间:
2013-2-5 06:53
运算结果相同,&&效率高一些!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2