在Oracle Java Docs它提到& &运算符具有更高的优先于||。运营商。&&运算符真的比||更优先运营商?看看代码
请看下面的代码:
class TestLogicalOperators
{
public static void main(String... args)
{
if(doFalse() || doTrue1() && doTrue2())
{
System.out.println(true+" inside if");
}
}
static boolean doTrue1()
{
System.out.println("doTrue1");
return true;
}
static boolean doTrue2()
{
System.out.println("doTrue2");
return true;
}
static boolean doFalse()
{
System.out.println("doFalse");
return false;
}
}
输出是:
doFalse
doTrue1
doTrue2
真正内如果
现在,如果& &运算符优先于||运算符不应在doFalse()之前先评估doTrue1()和doTrue2()方法吗?
运算符优先级为** not **评估顺序。这是如何解析表达式 –