Logo

郎哥编程

逻辑运算符

2019-12-07 1028

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

image.png


逻辑与运算符“&&”,用于判断运算符两边的条件表达式返回的结果,或布尔变量的值是否同为真,如果同为真,返回结果为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用括号括起来,以提高其运算优先级,因此先执行关系运算,再执行逻辑非运算。

程序执行结果如下图所示:

image.png                                             

在编程过程中,经常碰到需要判断两个条件是否都满足或只有一个条件满足的情况,根据判断结果程序转向不同的分支。逻辑运算符可以解决上面的问题。

代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论