逻辑OR运算符与按位OR运算符
有谁知道原因:
if (false && true || true) { System.out.println("True"); } else { System.out.println("False"); }
打印“ 真实 ”
if (false && true | true) { System.out.println("True"); } else { System.out.println("False"); }
打印“ 假 ”
在第一种情况下,&&的优先级高于|| 运算符,因此表达式被计算为if ( (false && true) || true )
并且您得到True。
在第二种情况下,按位OR运算符的优先级高于&&,因此表达式的计算结果为if ( false && ( true | true ) )
并且得到False。
由于运算符优先级 。 在第一个示例中,首先执行&&
,然后执行||
。 但是按位OR具有更高的优先级,因此在第二个示例中, |
首先完成,然后是&&
。