逻辑运算符的优先级是 ! > && > || 所以 f && f || f && f || f && f || f && f 把两个f&&f的计算是优先的 也就是全部都是false,全部false的或运算自然是false。不过,个人感觉,不需要在意这种东西,毕竟代码是为了表达我们的意图的,能让人一目了然是最好的
根据优先级先算&& 再算|| f && f 全部的f&&f 都是false 然后算|| 因为都是false 所以都是false,最后b是false
如果你改成 b=f && f || f && f || f && f || t && t ; 同理 f&&f是false 但是 t&&t是true 最后是false||false||false||true || 只要有一个为true就是true 所以最后b=true
public class Test111 {
public static void main(String [] args)
{
boolean b,t=true,f=false;
b=t && (t ||f) && f || f && f || f && f ;
System.out.println(b);
}
}
做了一个简单的测试,你可以用括号来证明,证明结果是&&先运行,然后才运行双或
根据优先级问题双与的优先级大于双或。
f && f || f && f || f && f || f && f 的运算顺序。。
先运行f&&f,然后依次运行II两旁boolean值。