1、从优先级的角度来看,&&优先级要大于||。
2、从运算符的角度来看,两者都属于逻辑运算符,并且属于左运算符(也就是符号左边的先运行)。
例:
a&&b&&c||d&&e
先执行a 为false ||左边直接为false,计算||右边。若为true
再执行b 为false ||左边直接为false,计算||右边。若为true
再执行c 为false ||左边直接为false, 计算||右边。若为true
程序退出输出true。
若||左边为false,则算||右边
先执行d 为false,则最终结果为false。若为true
再执行e 为false,则最终结果为false。若为true
程序退出输出true。
3、从两者的特性上来看,都具备短路特性,也就是说一旦左边的公式可以让整个运算得出一个具体的值,符号后面的公式就不会执行。
例:
int a=5;
int b=6;
boolean judgment=(--a)-b>0&&(++a)-b==0;
最后judgment=false,a=4,b=6;
原因就是前面的这个公式已经可以判断这个表达式返回的结果一定是false了,所以&&后面的语句就不执行了。