Java 中 && 和 & 的区别
在java中&和&&都属于逻辑运算符,都是判断两边条件为真时为真,否则则为假。
在程序中:
1 int i = 1; 2 if ((i++ > 1) & (i++ > 3)) { 3 System.out.println("啦啦啦"); 4 } else { 5 System.out.println("噢噢噢"); 6 } 7 System.out.println(i);
运行结果:
1 噢噢噢 2 3
& 逻辑运算符实际上会把前后两个判断条件都执行一次,也就是 i 自身加两次 出现结果为 3 。
1 int i = 1; 2 if ((i++ > 1) && (i++ > 3)) { 3 System.out.println("啦啦啦"); 4 } else { 5 System.out.println("噢噢噢"); 6 } 7 System.out.println(i);
运行结果:
1 噢噢噢 2 2
&& 逻辑运算符实际上只判断了前边一个条件为假时,得出判断为false,出现结果为:2
区别:
&& 会出现短路,通过第一个表达判断整个表达式的结果,后面的表达式将不会运算。
&不会出现短路,将整个表达式都进行运算,&既可操作 boolean 数据还可以操作 数