Java运算符表达式(超详细)续

本文介绍了Java中的逻辑运算符,包括短路与(&&),短路或(||),逻辑非(!),以及非短路的与(&)和或(|)。同时,详细阐述了比较运算符,如大于(>),小于(<),大于等于(>=),小于等于(<=)和相等(==)与不相等(!=)的使用规则和注意事项。此外,还提到了三元运算符的语法格式和应用场景。
摘要由CSDN通过智能技术生成

3.逻辑运算符

运算符用法含义说明实例结果
&&
a&&b
短路与
ab 全为 true 时,计算结果为 true ,否则为false。
2>1&&3<4
true
||
a||b
短路或
ab 全为 false 时,计算结果为 false ,否则为true。
2<1||3>4
false
!
!a
逻辑非
a true 时,值为 false a false 时,值为 true
!(2>4)
true
|
a|b
逻辑或
ab 全为 false 时,计算结果为 false ,否则为true
1>2|3>5
false
&
a&b
逻辑与
ab 全为 true 时,计算结果为 true ,否则为false
1<2&3<5
true
                && 与 & 区别:如果 a false ,则不计算 b (因为不论 b 为何值,结果都为 false
                || 与 | 区别:如果 a true ,则不计算 b (因为不论 b 为何值,结果都为 true
        注意:短路与(&& )和短路或( || )能够采用最优化的计算方式,从而提高效率。在实际编程时,应 该优先考虑使用短路与和短路或
        结果为 boolean 型的变量或表达式可以通过逻辑运算符结合成为逻辑表达式。逻辑运算符 && || 和 !按表 2 进行逻辑运算。
aba&&ba||b!a
truetruetruetruefalse
falsetruefalsetruetrue
truefalsefalsetruefalse
falsefalsefalsefalsetrue
        逻辑运算符的优先级为:!运算级别最高,&& 运算高于 || 运算。!运算符的优先级高于算术运算符, 而 && || 运算则低于关系运算符。结合方向是:逻辑非(单目运算符)具有右结合性,逻辑与和逻辑或 (双目运算符)具有左结合性。

4.比较运算符(关系运算符)

运算符的结果是true 或 false

说明
实例
结果
>
大于运算符
只支持左右两边操作数是数值类型。如果前面变量的值大于后面 变量的值,则返回 true
2>3false
>=
大于或等于运算符
只支持左右两边操作数是数值类型。如果前面变量的值大于等于 后面变量的值,则返回 true
4>=2true
<
小于运算符
只支持左右两边操作数是数值类型。如果前面变量的值小于后面变量的值,则返回 true
2<3false
<=小于或等于运算符
只支持左右两边操作数是数值类型。如果前面变量的值小于等于后面变量的值, 则返回 true
4<=2false
==相等于运算符
如果进行比较的两个操作数都是数值类型,无论它们的数据类型是否相同,只要它们的值相等,也都将返回 true 。 如果两个操作数都是引用类型,只有当两个引用变量的类型具有父子关系时才可以比较,只要两个引用指向的不是同一个对象就会返回true。 Java 也支持两个 boolean 类型的值进行比较。
44 87'a'
5.05
truefalse

true

true

true

false

!=不相等运算符
如果进行比较的两个操作数都是数值类型,无论它们的数据类型是否相同,只要它们的值不相等,也都将返回 true 。 如果两个操作数都是引用类型,只有当两个引用变量的类型具有父子关系时才可以比较,只要两个引用指向的不是同一个对象就会返回true。
4!=2true

注意点如下所示:

1. 基本类型的变量、值不能和引用类型的变量、值使用 == 进行比较; boolean 类型的变量、值不能
与其他任意类型的变量、值使用 == 进行比较;如果两个引用类型之间没有父子继承关系,那么它
们的变量也不能使用 == 进行比较。
2. == != 可以应用于基本数据类型和引用类型。当用于引用类型比较时,比较的是两个引用是否指 向同一个对象,但当时实际开发过程多数情况下,只是比较对象的内容是否相当,不需要比较是否 为同一个对象。
        关系运算符的优先级为:> < >= <= 具有相同的优先级,并且高于具有相同优先级的 != == 。关系 运算符的优先级高于赋值运算符而低于算术运算符,结合方向是自左向右。
关系表达式通常用于 Java 程序的逻辑判断语句的条件表达式中。使用关系表达式要注意以下几点:
        运算符 >= == 、! = <= 是两个字符构成的一个运算符,用空格从中分开写就会产生语法错误。例如 x> =y; 是错误的,但是可以写成 x >= y; 在运算符的两侧增加空格会提高可读性。同样 将运算符写反,例如 => =< =! 等形式会产生语法错误。
        由于计算机内存放的实数与实际的实数存在着一定的误差,如果对浮点数进行 == (相等)或 != (不相等)的比较,容易产生错误结果,应该尽量避免。
        不要将“==” 写成 “=”
/*
 * Copyright (c) 2020, 2023, lzq.cn All rights reserved.
 *
 */
package cn;

/**
 * <p>Project: jiaocheng - T6</p>
 * <p>Powered by lzq On 2023-07-08 11:47:36</p>
 * <p>描述:<p>
 *
 * @author lzq [2391211247@qq.com]
 * @version 1.0
 * @since 17
 */
public class T6 {
    public static void main(String[] args) {
        System.out.println(2 >= 3);
        System.out.println(2 < 3);
        System.out.println(2 <= 3);
        System.out.println(2 == 3);
        System.out.println(2 != 3);
        System.out.println(1 == .5);
        int a = 1;
        double b = 1.0;
        System.out.println(a == b);
        System.out.println("--------------------");
        String s1 = "ok";
        String s2 = "ok";
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s1 == s2);
        System.out.println(s1.equals(s2));
        String s3 = new String("java");
        String s4 = new String("java");
        System.out.println(s3);
        System.out.println(s4);
        //String p1 = "admin"; p2 = "admin"
        //判断字符串对象的堆内存中的地址是不是相等
        System.out.println(s3 == s4);
        //判断字符串值是否相等
        System.out.println(s3.equals(s4));
    }
}

5.三元运算符

语法格式:
        关系表达式 ? 表达式 1 : 表达式 2;
        解释 :问号前面的位置是判断的条件,判断结果为boolean 型,为 true 时调用表达式 1 ,为 false 时调用表达式2 。其逻辑为:如果条件表达式成立或者满足则执行表达式 1 ,否则执行表达式 2
/*
 * Copyright (c) 2020, 2023, lzq.cn All rights reserved.
 *
 */

import java.util.Calendar;

/**
 * <p>Project: jiaocheng - T9</p>
 * <p>Powered by lzq On 2023-07-08 14:17:23</p>
 * <p>描述:<p>
 *
 * @author lzq [2391211247@qq.com]
 * @version 1.0
 * @since 17
 */
public class T9 {
    public static void main(String[] args) {
        //System.out.println(6=3);
        //int i = 10;
        //System.out.println(age);
        //System.out.println(i);
        //System.out.println(false && i=3);
        //System.out.println(i = 6);
        int num = true ? 10 : 100;
        System.out.println(num);
        //true ? System.out.println("yes") : System.out.println("No");
        String str = Math.random() > .5 ? "Yes" : "No";
        System.out.println(str);
        //Math.random() 返回随机double1.0-0.0 之间的随机小数
        System.out.println(Math.random() > .5 ? 1000 : 9999);
        var c = Calendar.getInstance();
        var h = c.get(Calendar.HOUR_OF_DAY);
        System.out.println(h < 12 ? "上午" : "下午");
        if (h < 12) {
            System.out.println("上午");
        } else {
            System.out.println("下午");

        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值