逻辑运算符用于连接两个条件表达式或布尔类型的变量,用于执行多个判断。在数学中,表示一个数值的范围时,经常用不等式来表述。例如:假设一个数值取值范围为0到100,设该数值为x,不等式0<x<100给出了x的取值范围,在Java程序语言中,逻辑运算符可以实现类似数学中的不等式。下表列出了Java语言支持的逻辑运算符,表中假设布尔变量A为真,变量B为假。

逻辑与运算符“&&”,用于判断运算符两边的条件表达式返回的结果,或布尔变量的值是否同为真,如果同为真,返回结果为true,否则返回false。例如下面语句:
int a = 10; int b = 20; int c = 15; boolean bJudge = c > a && c < b;
声明了变量a、变量b、变量c,变量a和变量分别赋值为10和20,变量c赋值为15。第四条语句逻辑与运算符“&&”连接了2个条件表达式,分别是c > a和c < b,如果这两个表达式计算结果都为真,则bJudge为真,否则bJudge为false。此时bJudge的值为true。该运算符还有一个特点,当左侧的条件表达式或布尔变量为假时,则直接返回结果false,不再执行运算符右侧的表达式或布尔变量。
逻辑或运算符“||”,用于判断运算符两边的条件表达式或布尔变量是否有一个为真,如果有一个为真,返回结果为true,否则返回false。例如下面语句:
int a = 10; int b = 20; int c = 15; boolean bJudge = c > a || c < b;
声明了变量a、变量b、变量c,变量a和变量分别赋值为10和20,变量c赋值为15。第四条语句逻辑或运算符“||”连接了2个条件表达式,分别是c > a和c < b,这两个表达式计算结果任何一个为真时,则bJudge为真,否则bJudge为false。此时bJudge的值为true。
逻辑非运算符“!”,用于判断运算符两边的条件表达式或布尔变量是否有一个为真,如果有一个为真,返回结果为true,否则返回false。例如下面语句:
int a = 10; int b = 20; boolean bJudge = !( a> b);
声明了变量a、变量b,变量a和变量分别赋值为10和20。第三条语句逻辑非运算符“!”用于取反条件表达式a> b的结果,如果a> b为真,取反后为false,如果a> b为假,取反后为true。此时bJudge的值为true。语句中用括号把a> b括起来,用于提高a> b的优先级,先计算a> b,再取反。
案例1:在PbaseUnit6项目unit包下创建LogicSample类。代码如下:
/**
* @Title: LogicSample.java
* @Package unit
* @Description: Java基础知识课程案例
* @author 编程训练营
* @date 2019年12月1日
* @version V1.0
*/
package unit;
/**
* @ClassName: LogicSample
* @Description: 表达式与运算符(逻辑运算符)案例 1
* @author 编程训练营
* @date 2019年12月1日
*
*/
public class LogicSample {
/**
* @Title: main
* @Description: Java程序入口main方法
* @param @param args 参数
*
* @return void 返回类型
* @throws
*/
public static void main(String[] args) {
// 声明变量a、b、c
int a = 10;
int b = 20;
int c = 15;
// 声明boolean变量
boolean bJudge;
// 执行逻辑与判断
bJudge = c > a && c < b;
System.out.printf("c(15) > a(10) && c(15) < b(20)的结果:bJudge =%b\n", bJudge);
// 执行逻辑或判断
bJudge = c > a || c < b;
System.out.printf("c(15) > a(10) || c(15) < b(20)的结果:bJudge =%b\n", bJudge);
// 执行逻辑非
bJudge = !(a > b);
System.out.printf("!( a(10)> b(20))的结果:bJudge =%b\n", bJudge);
}
}代码结构分析
程序功能主要是演示逻辑运算符的用法。
类似语句“bJudge = !( a> b);”,Java初学者可能会有困惑,语句中有关系运算符和逻辑非运算符,那个运算符先参与运算呢?这就涉及到运算符优先级的问题,关于运算符优先级后面会有介绍。在当前语句中,把关系运算符相关的表达式a> b用括号括起来,以提高其运算优先级,因此先执行关系运算,再执行逻辑非运算。
程序执行结果如下图所示:
在编程过程中,经常碰到需要判断两个条件是否都满足或只有一个条件满足的情况,根据判断结果程序转向不同的分支。逻辑运算符可以解决上面的问题。