&& 和 &,|| 和 |
逻辑运算符简单介绍
一、&& 和 &
&&:短路与 逻辑与
&:非短路与 安危与
相同的:
都是可以进行逻辑与运算,下面两行是等价的
//举个例子,a=1 b=2
//所以 a>0 这个值为true b>1 这个值为true b>2 这个值为 false
if(a>0 & b>1) //得出 if(true&true),条件成立(true不为0,所以true&true不为0)
if(a>0 && b>1) //可以得出 if(true&&true),条件成立(&&两边操作数都非零,所以条件成立)
if(b>2 & a>0) //可以得出 if(false&true),条件不成立(false为0,false&true为0,条件不成立)
if(b>2 && a>0) //可以得出 if(false&&a>0),条件不成立(&&左侧为false,&&运算到此结束,条件不成立)
不同点:
当对引用型变量进行操作时就需要使用 &&,String 类型判断强烈建议使用(1)
String string == null;
if(string != null && string.equals("aaa")) //(1)使用这条语句是不会出现空指针异常的
if(string != null & string.equals("aaa")) //(2)出现空指针异常的
if(string.equals("aaa") && string != null) //(3)出现空指针异常的
总结:&&(短路与)当左边为非时不再比较右边。
一、|| 和 |
||:短路或 逻辑或
|:非短路或 安危或
参见:&& 和 &