zoukankan      html  css  js  c++  java
  • 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,则后面的条件不在判断。

  • 相关阅读:
    软件工程概论
    软件工程概论
    JAVA
    JAVA
    C#字符补位
    C#绘图双缓冲
    C#中IP地址转换为数值的方法
    C#并行编程-并发集合
    C#委托
    C#事件(event)解析
  • 原文地址:https://www.cnblogs.com/zbh355376/p/14440474.html
Copyright © 2011-2022 走看看