Java学习笔记2.3.4 运算符与表达式 - 逻辑运算符

Posted howard2005

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习笔记2.3.4 运算符与表达式 - 逻辑运算符相关的知识,希望对你有一定的参考价值。

文章目录

零、本讲学习目标

  1. 掌握逻辑运算符的基本使用
  2. 会利用逻辑运算符表达复杂条件

一、逻辑运算符概述

  • 逻辑运算符是用于对布尔类型的值或表达式进行操逻辑判断的符号,其返回值类型是布尔类型。

二、逻辑运算符使用

(一)分类说明表

运算符运算范例结果
&a & ba和b都为true,结果为true,否则为false
|a | ba和b中只要有一个为true,则结果为true,否则为false
^异或a ^ ba与b不同,结果为true,否则为false
!! a若a为false,结果为true,否则相反
&&短路与a && ba和b都为true,结果为true,否则为false
||短路或a || ba和b中只要有一个为true,则结果为true,否则为false
  • 与运算真值表
&(&&)falsetrue
falsefalsefalse
truefalsetrue
  • 或运算真值表
|(||)falsetrue
falsefalsetrue
truetruetrue
  • 异或运算真值表
^falsetrue
falsefalsetrue
truetruefalse
  • 非运算真值表
!falsetrue
truefalse

(二)注意事项

  • 逻辑运算符可以针对结果为布尔值的表达式进行逻辑运算。如:5 > 3 && 1 != 0的结果为true。
  • 运算符“&”和“&&”都表示与操作,当且仅当运算符两边的操作数都为true时,其结果才为true,否则结果为false。
  • “&”和“&&”的区别:在使用“&”进行运算时,不论左边为true或者false,右边的表达式都会进行运算。如果使用“&&”进行运算,当左边为false时,右边的表达式不会进行运算,因此“&&”被称作短路与。
  • 运算符“|”和“||”都表示或操作,当运算符任何一边的操作数或表达式为true时,其结果为true,当两边的值都为false时,其结果才为false。同与操作类似,“||”表示短路或,当运算符“||”的左边为true时,右边的表达式不会进行运算。
  • 运算符“^”表示异或操作,当运算符两边的布尔值相同时(都为true或都为false),其结果为false。当两边布尔值不相同时,其结果为true。

(三)案例演示

任务1、闰年判断

package net.hw.lesson05;

import java.util.Scanner;

/**
 * 功能:闰年判断
 * 作者:华卫
 * 日期:2020年3月22日
 */
public class Example508 
    public static void main(String[] args) 
        int year;
        boolean isLeapYear;
        Scanner sc = new Scanner(System.in);

        System.out.print("year = ");
        year = sc.nextInt();

        isLeapYear = year % 4 == 0 && year % 100 != 0 || year % 400 == 0;

        if (isLeapYear)
            System.out.println(year + "是闰年。");
        else
            System.out.println(year + "是平年。");
    

运行程序,结果如下:

再运行程序,结果如下:

其实闰年条件也可以修改一下,同时用到三种逻辑运算符。

注意:Java的 !、&(&&)、|(||) 对应 Python的not、and、or。

课堂练习:计算三角形面积

  • 利用三边关系定理判断能否构成三角形
    三边关系定理:任意两边之和大于第三边
  • 如果能构成三角形,利用海伦公式来计算。
    三边为 a , b , c a, b, c a,b,c,半周长 p = a + b + c 2 p=\\displaystyle \\fraca+b+c2 p=2a+b+c
    面积 a r e a = p ( p − a ) ( p − b ) ( p − c ) area=\\displaystyle \\sqrtp(p-a)(p-b)(p-c) area=p(pa)(pb)(pc)

以上是关于Java学习笔记2.3.4 运算符与表达式 - 逻辑运算符的主要内容,如果未能解决你的问题,请参考以下文章

Java学习笔记2.3.3 运算符与表达式 - 关系运算符

Java学习笔记2.3.2 运算符与表达式 - 赋值运算符

Java学习笔记2.3.1 运算符与表达式 - 算术运算符

Java学习笔记2.3.6 运算符与表达式 - 条件运算符

Java学习笔记2.3.5 运算符与表达式 - 位运算符

java学习笔记2(datawhale教程):运算符和表达式流程控制数组