
3.5.2 布尔逻辑运算

在进行空姐选拔时,被选拔人员需要满足多个条件才可以成为某航空公司的空姐,如图3.29所示。

图3.29 空姐选拔条件
在编程中也一样,一些代码往往需要满足多个条件才可以执行。这时就需要将这多个条件进行组合。布尔逻辑运算符就是将多个条件进行组合所产生的。Java语言包括3种布尔逻辑运算符,如表3.11所示。
表3.11 布尔逻辑运算符

使用布尔逻辑运算符构建的表达式被称为布尔逻辑运算表达式,又被称为逻辑表达式。其语法形式如下:

1.逻辑与运算
逻辑与运算需要使用逻辑与运算符(&&)。使用逻辑与运算符构建的表达式被称为逻辑与运算表达式。其语法形式如下:

只有当“条件表达式1”和“条件表达式2”都为true时,逻辑与表达式的值才为true;当“条件表达式1”或“条件表达式2”中有一个为false时,逻辑与表达式的值就为false。
【示例3-34】下面将实现逻辑与运算。代码如下:

运行结果如下:

2.逻辑或运算
逻辑或运算需要使用逻辑或运算符(||)。使用逻辑或运算符构建的表达式被称为逻辑或运算表达式。其语法形式如下:

当“条件表达式1”或“条件表达式2”中有一个为true时,逻辑或表达式的值就为true;当“条件表达式1”和“条件表达式2”都为false时,逻辑或表达式的值就为false。
【示例3-35】下面将实现逻辑或运算。代码如下:


运行结果如下:

注意:在逻辑与运算符和逻辑或运算符中都使用到了“短路”原则,它会减少运算量。例如在逻辑与运算中,首先会判断第一个条件表达式是否返回false,如果返回false,后面的判断就会造成“短路”,也就不再执行了。所以在使用这两个运算符时,需要将最为重要的判断条件放到最前面先执行。生活中,“短路”原则的应用是很常见的,如在征兵时,满18周岁这个条件就是首选,如果不满足,就会被直接刷下来。
3.逻辑非运算
逻辑非运算需要使用逻辑非运算符(!)。使用逻辑非运算符构建的表达式被称为逻辑非运算表达式。其语法形式如下:

当“条件表达式”为true时,逻辑非表达式的值就为false;当“条件表达式”为false时,逻辑非表达式的值就为true。
【示例3-36】下面将实现逻辑非运算。代码如下:

运行结果如下:

助记:为了快速进行布尔逻辑运算,需要熟记表3.12中的运算结果(真值表)。
表3.12 真值表

有时为了满足某种需求需要将多个逻辑运算符复合在一起,来创建更长的复合表达式。代码如下:

在执行此代码时,需要注意逻辑运算符的优先级,!最高,||最低,如图3.30所示。

图3.30 运算符的优先级
根据优先级可知!(7<2)&&8<5||5>2的执行顺序,如图3.31所示。

图3.31 运算顺序
运行结果如下:
