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