很多时候我们经常说&&运算效率要高于&,
但是Java中为何还要保留&运算符呢?
我们通过下面2个最简单的案例来说明一下。
int n,d;
n=10;
d=0;
if( d!=0 && (n%d)==0 ){
/*
非常有效的隔绝了除零操作(短路与&&)
如果为单个&就无法判断了。因为还要参与后面表达式的运算(n%d)==0
此例中大家可以尝试修改一下&&和&的运行结果。
*/
System.out.println("ok");
}
System.out.println("over");
int i;
i=0;
if((i==0) && (++i<100)){
/*
* & 一个运算符时任何时候后面的(++i<100)一定会参与++运算。
* && 二个运算符的时候,
* 只有前面的表达式为true时
* 后面的表达式(++i<100)才会运算
*/
System.out.println("分支结构的i="+i);
}
System.out.println("i="+i);