Java基础:条件运算符

上一篇文章介绍比较运算符,本文介绍条件运算符。

概述

条件运算符就像我们在现实生活中做决定一样,它会控制程序的流程并根据提供的条件产生结果。

条件运算符有三种类型,分别为条件与、条件或和三元运算符,让我们深入了解这些条件运算符在 Java 中如何使用。

以下运算符作为条件运算符提供,条件运算符的操作数采用布尔类型值:

操作符 输入示例 解释
&& x && y 如果 x 和 y 都为真,则返回真。
|| x || 是 如果 x 或 y 为真,则返回真。
& x&y 如果 x 和 y 都是布尔值并且都为真,则返回真。如果两个变量都是整数类型,则执行按位与运算。
| x | y 如果 x 和 y 都是布尔值并且其中一个为真,则返回真。如果两个变量都是整数类型,则执行按位或运算。
^ x^y 如果 x 和 y 都是布尔值并且 x 和 y 是不同的值,则返回 true。如果两个变量都是整数类型,则执行按位 XOR 运算。
!X 如果 x 为假,则返回真。

代码示例:

package com.test.javaroads.operator;

/**
 * @author: javaroads
 * @date: 2022/12/4 17:43
 * @description:
 */
public class Seven {

    public static void main(String[] args) {
        int a = 0;
        int b = 0;

        if ((!(a > 0)) && (!(b > 0))) {
            a = 10;
            b = 20;
        }

        if ((a > 15) ^ (b > 15)) {
            System.out.println("运算符 = 成立。");
        } else {
            System.out.println("运算符 = 不成立。");
        }
    }
}

执行结果:

代码说明:

  • 如果 (!(a > 0)) 和 (!(b > 0)) 都为真,则执行 if 块内的表达式。由于 a 和 b 都不大于 0 (a > 0),(b > 0) 返回 false 并且 ! 运算符同时返回 (!(a > 0)) 和 (!(b > 0)) 被认为是 true
  • 如果 (a > 15) 或 (b > 15) 为真,则执行 if 块内的表达式。(a > 15) 返回 false 而 (b > 15) 返回 true,所以两者都为真。

&&,|| 和 &,| 的区别

&&、|| 和&、| 中的运算符含义相同,但它们的行为有明显区别。&如果左右操作数都为真,则返回真,如果左操作数为假,则不管右操作数是真还是假,都会返回假。&& 如果左操作数为假,则返回假而不执行右操作数,如果左操作数为假,则在执行右操作数后返回假。

|| 和 | 如果左操作数或右操作数为真,则返回真,这意味着如果左操作数为真,则无论右操作数是真还是假都返回真。|| 如果左操作数为真,则返回真而不执行右操作数。| 如果左操作数为真,则在执行右操作数后返回真。

&&、|| 和&、| 的行为区别在于,当整体执行结果只能由左操作数的结果确定时,是否执行右操作数。由于这些特性,&& 和 || 运算符也称为短路运算符

扫描二维码关注公众号,回复: 16152353 查看本文章

如果只进行真或假的判断,无论使用哪个运算符,执行结果都没有区别,但在对右操作数执行某些处理时,需要注意行为上的差异。

下面我们还是通过代码来感受一下!

package com.test.javaroads.operator;

/**
 * @author: javaroads
 * @date: 2022/12/4 17:51
 * @description:
 */
public class Eight {

    public static void main(String[] args) {
        int a = 5;
        if (a > 0 || (a *= 10) > 100) {
            System.out.println("a是" + a);
        }

        int b = 5;
        if (b > 0 | (b *= 10) > 100) {
            System.out.println("b是" + b);
        }
    }
}

执行结果:

代码解释:

  • 对于 || 运算符,如果左操作数为真,则不执行右操作数。,由于左操作数为真,因此执行 println 语句时不会处理将变量 a 乘以 10 的右操作数。
  • 对于 | 运算符,即使左操作数为真,也执行右操作数。将右操作数的变量b乘以10,执行println语句。

猜你喜欢

转载自blog.csdn.net/weixin_43025343/article/details/132236173