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 falsetrue
true truetruetruefalsefalsetrue 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原创文章,未经本站允许。