Java中短路与&&和短路或||

  短路的意思就是惰性运算,当符号左边的式子已经可以确认最后结果时,符号右边的式子就不进行计算了。

  短路与是Java语言中的一个逻辑运算符,记作&&,与编程语言中的与(&)相似,但是具有短路性质:在使用&进行运算时,不论左边为true或者false,右边的表达式都会进行运算,而如果使用&&进行运算,当左边为false时,右边的表达式不会进行运算,因此&&被称为短路与。

  短路或是Java语言中的一个逻辑运算符,记作||,与编程语言中的或(|)相似,但是具有短路性质:在使用|进行运算时,不论左边为true或者false,右边的表达式都会进行运算,而如果使用||进行运算,当左边为true时,右边的表达式不会进行运算,因此||被称为短路或。

短路与和短路或的验证:

import java.util.Random;

/**
 * copyright(c)2021 zbh.ALL rights Reserved
 * <p>
 * 描述:
 *
 * @author zbh
 * @version 1.0
 * @date 2021/2/23
 */
public class Demo1 {
    public static void main(String[] args) {
        // 验证短路与
        System.out.println("短路与:");
        boolean result = A() && B();
        System.out.println("---------------");
        // 验证短路或
        System.out.println("短路或:");
        result = A() || B();
        System.out.println("---------------");
        // 验证与
        System.out.println("与:");
        result = A() & B();
        System.out.println("---------------");
        // 验证或
        System.out.println("或:");
        result = A() | B();
    }

    private static boolean A() {
        System.out.println("enter A");
        boolean result = false;
        // 生成随机的true和false
        Random random = new Random();
        result = random.nextBoolean();
        // 输出返回的boolean类型是true还是false
        System.out.println("A:"+result);
        return result;
    }

    private static boolean B() {
        System.out.println("enter B");
        boolean result = false;
        // 生成随机的true和false
        Random random = new Random();
        result = random.nextBoolean();
        // 输出返回的boolean类型是true还是false
        System.out.println("B"+result);
        return result;
    }
}

运行结果:

  由结果可得,当A()返回的是false,运行的是短路与时,B()并没有执行。当A()返回的是true,运行的是短路或时,B()没有执行。当执行与和或时,无论A()返回什么,B()都会执行。

总结

  • 对于与来说,要求所有的条件都要判断。

  • 对于短路与来说,如果第一个条件为false,则后面的条件不再判断。

  • 对于或来说,要求所有的条件都要判断。

  • 对于短路或来说,如果第一个条件为true,则后面的条件不在判断。

原文地址:https://www.cnblogs.com/zbh355376/p/14440474.html