• Java 中与(&)短路与(&&)以及 或(|)短路或(||)的关系


    一、逻辑运算符的使用

      1)逻辑运算符的连接的是布尔表达式,要与位运算符做区分。

      2)使用方法:

    public class Test {
       public static void main(String[] args) {
          System.out.println(true & false);//结果为false
          System.out.println(true & true);//结果为true
          System.out.println(false & false);//结果为false
          System.out.println(false & true);//结果为false
          /*
          System.out.println(true && false);//结果为false
          System.out.println(true && true);//结果为true
         System.out.println(false && false);//结果为false
          System.out.println(false && true);//结果为false
           */
       }

          }

        结论:逻辑与只有当符号两边的表达式都为true时结果才为true

    ==============================================================

    public class Test {
       public static void main(String[] args) {
          System.out.println(true | false);//结果为true
          System.out.println(true | true);//结果为true
          System.out.println(false | false);//结果为false
          System.out.println(false | true);//结果为true
          /*
          System.out.println(true || false);//结果为true
          System.out.println(true || true);//结果为true
         System.out.println(false || false);//结果为false
          System.out.println(false || true);//结果为true
           */
       }

     }

    结论:逻辑或只有当符号两边的表达式都为false时结果才为false

    ==============================================================

    二、‘短路与’、‘短路或’

      1)‘&、|’与‘&&、||’的区别

          单个的逻辑运算符会将左右两个表达式都进行运算得出布尔值,再进行运算。‘短路与’若左边表达式为false则不会对右边的表达式进行判断,

        因为结果必为false;‘短路或’若左边表达式结果为true则不会对右边的表达式进行判断,因为结果必为true。

          短语的逻辑运算符相当于普通的逻辑运算符效率更高些。

    三、例子

    public class Test {
       public static void main(String[] args) {

      int num = 1;
      System.out.println(false & num++==1);//即使前面为false,右边的表达式还是会继续执行,即num++
      System.out.println(num);//2
      System.out.println("=====华丽的分割线=====");
      num = 1;
      System.out.println(false && num++==1);//左边的表达式为false,右边的表达式将不会执行,即num不会自增
      System.out.println(num);//1

       }

    }

    输入的结果为:

    false
    2
    =====华丽的分割线=====
    false
    1

    短路与是同样的道理,大家可以自己编写代码验证一下

    ==============================================================

     

     

    本人拙见,若有什么不当的地方,希望大家多多指正!谢谢!
  • 相关阅读:
    图标图片1
    korGE打包注意事项
    书摘1011
    ffmpeg转流rtp转udp
    ffmpeg文档
    ffmpeg http 推流服务器
    cpp笔记
    搭建shAadowsoacks 错误
    ffmpeg 开发板推流到ubuntu和pc
    gstreamer笔记
  • 原文地址:https://www.cnblogs.com/yxiaooutlook/p/7606277.html
Copyright © 2020-2023  润新知