zoukankan      html  css  js  c++  java
  • java逻辑运算符小节

    在Java中,逻辑运算有And、Or、Not三种,其中And、Or又分为普通逻辑运算和短路逻辑运算两种。其中普通逻辑运算And用“&”表示,“|”表示或者关系。短路逻辑运算的时候,“&&”表示短路与,“||”表示短路或。

    1、一般逻辑运算需要在逻辑运算符两侧的逻辑表达式,都参与逻辑运算,其表达式的值进行比较,依次计算出最后的值。

    2、短路逻辑运算符需要首先计算最左边的表达式,如果最左边的表达式成立,则不再进行整个表达式的判断,直接取最左边的表达式为整个表达式的值。

    下面的例子虽然输出的值一样,但是运算的方式不一样:

    private void testAnd(boolean on ,boolean tw){
    System.out.println("true&&false = "+ (true&&false));
    System.out.println("false&&false = "+ (false&&false));
    System.out.println("false&&true = "+ (false&&true));
    System.out.println("true&&true = "+ (true&&true));

    System.out.println(" ");
    System.out.println("true&false = "+ (true&false));
    System.out.println("false&false = "+ (false&false));
    System.out.println("false&true = "+ (false&true));
    System.out.println("true&true = "+ (true&true));

    System.out.println(" ");
    System.out.println("true||false = "+ (true||false));
    System.out.println("false||false = "+ (false||false));
    System.out.println("false||true = "+ (false||true));
    System.out.println("true||true = "+ (true||true));

    System.out.println(" ");
    System.out.println("true|false = "+ (true|false));
    System.out.println("false|false = "+ (false|false));
    System.out.println("false|true = "+ (false|true));
    System.out.println("true|true = "+ (true|true));

    }

    输出结果为:

    短路与“&&”只有在左边的表达式值为true时,才会考虑右边表达式的值,否则直接取左边的值为整个表达式的值;
    true&&false = false
    false&&false = false
    false&&true = false
    true&&true = true

    //普通&全部计算表达式两面的值,然后取值运算;
    true&false = false
    false&false = false
    false&true = false
    true&true = true

    短路或“||”只有在左边的表达式值为false时,才会考虑右边表达式的值,否则直接取左边的值为整个表达式的值;
    true||false = true
    false||false = false
    false||true = true
    true||true = true

    普通或"|"全部计算表达式两面的值,然后得出结果
    true|false = true
    false|false = false
    false|true = true
    true|true = true

    适用短路运算的条件
    1)、表达式前后的逻辑条件有明显的顺序关联关系,顺序条件早的在表达式的左边;
    2)、逻辑运算符比较少,不会有嵌套或者短路与非短路逻辑混合的情况;
    3)、使用短路运算,必须清楚的明白所要判断的逻辑值的具体细节;
    4)、如果"&&"和"||"混用,则不考虑使用短路运算;

  • 相关阅读:
    windows定时任务schtasks命令详细解
    TCP/IP 详解7 Ping指令
    Vue JSX、自定义 v-model
    DOM 元素的循环遍历
    关于 Blob
    Vue.nextTick 的应用解析
    弹窗组件及其回调函数
    krry-transfer ⏤ 基于 element 的升级版穿梭框组件发布到 npm 啦
    防抖与节流 & 若每个请求必须发送,如何平滑地获取最后一个接口返回的数据
    Java 单文件、多文件上传 / 实现上传进度条
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6205733.html
Copyright © 2011-2022 走看看