java逻辑运算符&&、&、||、|的详解

 1 public class OperatorDemo{
 2     
 3     public static void main(String args[]) {
 4 
 5         //当我们执行一下代码时会报错(&属于没短路的)
 6         if(10!=10 & 10/0 == 0){
 7 
 8             System.out.println("没过");
 9         }
10 
11         //当我们执行一下代码时不会报错(&&属于短路的)
12         /*
13         if(10!=10 && 10/0 == 0){
14 
15             System.out.println("没过");
16         }
17         */
18         //当我们执行一下代码时会报错(|属于短路的)
19         /*
20         if(10!=10 | 10/0 == 0){
21 
22             System.out.println("没过");
23         }
24         */
25         //当我们执行一下代码时不会报错(||属于短路的)
26         /*
27         if(10!=10 || 10/0 == 0){
28 
29             System.out.println("没过");
30         }
31         */
32     }
33 }

总结:如果属于短路的方式,程序会提前考虑停止运行以后的代码(如果第一个条件不成立,后面的程序不会在考虑去执行)。而非短路的方式,前后的代码都会运行,导致后续程序的报错。

原文地址:https://www.cnblogs.com/daojiao/p/3453220.html