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

Posted 那么长的代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

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

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

 

 

 

 




































以上是关于Java 中与(&)短路与(&&)以及 或(|)短路或(||)的关系的主要内容,如果未能解决你的问题,请参考以下文章

短路与&&(或 ||)和非短路与&(或 |)的区别

Java 逻辑运算符与短路逻辑运算符

Java中与&&不一致和被零除错误

Java基础知识-判断与循环

逻辑运算符短路与,短路或

java中与和或的注意点