java逻辑运算&&与&的区别
本文主要阐述&&(短路与)和&(逻辑与)的运算异同:
a && b 和 a&b :
共同之处是只有a和b同时为真时,结果才为真,否则为假
不同点在于
a && b(短路与)若a为假时,则无需判断b,直接得出结果 为假
a & b(逻辑与)若a为假时,则b仍需要判断
public class LogicOperate { public static void main(String[] args) { // && 与 &的区别 int a = 30; int b = 1; // && // a && b ,若a为假,则b无需判断 if( a > 40 && ++b == 2 ) { System.out.println("hello"); } System.out.println("a = " + a +",b = " + b); // b = 1 //& // a & b ,若a为假,则b仍需判断 if( a > 40 & ++b == 2) { System.out.println("world"); } System.out.println("a = " + a +",b = " + b); // b = 2 } }
注意这里使用 ++ b 作为调试的手法
由此可见,&&比&更快速地得到结果,所以在项目上尽量使用&&节约时间。