逻辑运算符用于连接两个条件表达式或布尔类型的变量,用于执行多个判断。在数学中,表示一个数值的范围时,经常用不等式来表述。例如:假设一个数值取值范围为0到100,设该数值为x,不等式0
逻辑与运算符“&&”,用于判断运算符两边的条件表达式或布尔变量是否同为真,如果同为真,返回结果为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:逻辑运算符
在D盘Java目录下,新建“LogicSample.java”文件。用记事本打开“LogicSample.java”文件,输入以下代码:
代码结构分析
程序功能主要是演示逻辑运算符的用法。
类似语句“bJudge = !( a> b);”,Java初学者可能会有困惑,语句中有关系运算符和逻辑非运算符,那个运算符先参与运算呢?这就涉及到运算符优先级的问题,关于运算符优先级后面会有介绍。在当前语句中,把关系运算符相关的表达式a> b用括号括起来,以提高其运算优先级,因此先执行关系运算,再执行逻辑非运算。
编译“LogicSample.java”文件,在命令行窗口输入“javac LogicSample.java”并执行命令,编译通过后,在命令行窗口输入“java LogicSample”运行Java程序,命令行窗口显示如下信息:
图 6-14 逻辑运算符示例执行结果
在编程过程中,经常碰到需要判断两个条件是否都满足或只有一个条件满足的情况,根据判断结果程序转向不同的分支。逻辑运算符可以解决上面的问题。
(1)逻辑与运算符两边的操作数满足什么条件时,逻辑与运算符返回结果为真()
A.一真一假
B.同为真
C.同为假
D.无法判断真假
(2)逻辑或运算符两边的操作数满足什么条件时,逻辑或运算符返回结果为假()
A.同为真
B.一真一假
C. 同为假
D.无法判断
(3)逻辑非运算符是双目运算符还是单目运算符?