1.问题背景:一同事让看一段逻辑有没有问题,其中一个if如下:
if(A || B && C){
...
}
是的,没有括号,平时根据需要会写成
if((A || B ) && C){
...
}
或者
if(A || (B && C)){
...
}
但是遗留的代码就是没有括号,就天真的以为&& 和 || 的优先级是一样的。结果自己写了个Demo发现,&& 是高于|| 的。
2. java 中的与或非优先级
!> && > ||
3.离散数学中的与或非优先级
!> ∧ > v
4.编码时不推荐不加括号的写法,有时可能会有坑!