Java逻辑运算符
Java逻辑运算符包含下面6中符号:
&& 与 ;&& 与 前后两个操作数必须都是true才返回true,否则返回false
& 不短路与 ; & 不短路与 表达式都会执行到
|| 或; || 或 只要两个操作数中有一个是true,就返回true,否则返回false
|不短路或 ;| 不短路 或 表达式都会执行到
!非;! 非 ,如果操作数为true,返回false,否则,返回true
^异或;^ 异或 ,当两个操作数不相同时返回true,返回false
真值表
A B A&&B A||B !A A^B A&B A|B
false false false false true false false false
true false false true false true false true
false true false true true true false true
true true true true false false true true
总结
两种逻辑与(&&和&)的运算规则基本相同,两种逻辑或(||和|)的运算规则也基本相同。其区别是:&和|运算是把逻辑表达式全部计算完,而&&和||运算具有短路计算功能。所谓短路计算,是指系统从左至右进行逻辑表达式的计算,一旦出现计算结果已经确定的情况,则计算过程即被终止。对于&&运算来说,只要运算符左端的值为false,则因无论运算符右端的值为true或为false,其最终结果都为false。所以,系统一旦判断出&&运算符左端的值为false,则系统将终止其后的计算过程;对于 || 运算来说,只要运算符左端的值为true,则因无论运算符右端的值为true或为false,其最终结果都为true。所以,系统一旦判断出|| 运算符左端的值为true,则系统将终止其后的计算过程。
例如,有如下逻辑表达式:
(i>=1) && (i<=100)
此时,若i等于0,则系统判断出i>=1的计算结果为false后,系统马上得出该逻辑表达式的最终计算结果为false,因此,系统不继续判断i<=100的值。短路计算功能可以提高程序的运行速度。
建议:在程序设计时使用&&和||运算符,不使用&和|运算符。
用逻辑与(&&)、逻辑或(||)和逻辑非(!)可以组合出各种可能的逻辑表达式。逻辑表达式主要用在 if、while等语句的条件组合上。
例如:
int i = 1;
while(i>=1) && (i<=100) i++; //循环过程
上述程序段的循环过程将i++语句循环执行100次。
例子
if((23>24)&&(100/0==0)){//23>24 为false,后面条件就不执行判断,当23<24为true,后面条件继续执行判断,抛出异常java.lang.ArithmeticException: / by zero
}
if((23>24)&(100/0==0)){//条件必须都执行判断,抛出异常java.lang.ArithmeticException: / by zero
}
if((23<24)||(100/0==0)){// ||短路或,当第一个条件为true,后面条件不执行判断;
}
if((23>24)|(100/0==0)){// | 非短路或,所有条件都要执行判断
}
例子二
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。