- Java王者归来:从入门迈向高手
- 洪锦魁
- 855字
- 2021-03-30 18:25:47
4-5 布尔值、反向运算符、比较运算符与逻辑运算符
4-5-1 布尔值
在设计程序流程控制时,会使用到布尔值,第5章中会有完整的应用。布尔值只有两种,一种是true,另一种是false。
程序实例ch4_14.java:列出布尔值的应用。
执行结果
4-5-2 反向运算符
反向运算符符号是!,通常会搭配布尔值变量使用,可以获得反效果的布尔值,当然这个运算符主要也是要配合程序流程控制。
程序实例ch4_15.java:反向运算符的应用。
执行结果
4-5-3 比较运算符
比较运算符有下列几种,比较结果如果是真,则返回true,如果是伪,则返回false。
>:大于,例如,18>9,返回true;8>9,返回false。
<:小于,例如,18<9,返回false;8<9,返回true。
>=:大于或等于,例如,18>=18,返回true。
<=:小于或等于,例如,18<=18,返回true。
==:等于,例如,18==18,返回true;18==9 ,返回false。
!=:不等于,例如,'x'!='X',返回true。
程序实例ch4_16.java:比较运算符的应用。
执行结果
4-5-4 逻辑运算符
逻辑运算符有三个,如下所示。
(1)&&或是&;
相当于and运算,可参考下表。
(2)||或是|;
相当于or运算,可参考下表。
(3)^。
相当于XOR,如果操作数值相同返回false,否则返回true,可参考下表。
程序实例ch4_17.java:逻辑运算符&&的应用。
执行结果
读者可能会感到奇怪,为何Java提供了&&(或||)逻辑运算符,还要提供好像功能完全相同的&(或|)逻辑运算符?虽然它们的运算结果相同,但是过程还是有差异,使用&&(或||)时,如果&&(或||)左边的运算符可以决定结果,程序会忽略右边运算符的操作。在Java专业术语中又将&&(或||)符号称为逻辑运算短路符号。
程序实例ch4_18.java:列出&&和&运算时的差异。
执行结果
对于第5行而言,由于&&左边的a是false已经可以预知运算结果了,所以将省略右边的i++运算,所以第6行列出结果i等于5。对于第7行而言,由于是使用&运算符,因为左右两边的操作数均需执行完毕,所以会执行到i++,第8行列出的结果是i等于6。
程序实例ch4_19.java:逻辑运算符||的应用。
执行结果
程序实例ch4_20.java:逻辑运算符^的应用。
执行结果
4-5-5 再谈三元运算符
在4-1-7节中有说明三元运算符的意义,当时尚未介绍比较运算符(4-5-3节),所以无法以实例说明,下列是三元运算符的公式:
表达式?X:Y
程序实例ch4_21.java:三元运算符的应用,分别列出较大值与较小值。
执行结果