当我执行下面的代码时,我得到下面的输出。但是根据Java运算符,优先级&&的优先级高于||。因此,首先应评估(boolb = true)&&(boolc = true),但这并未发生。您能告诉我幕后原因和实际发生的情况吗?
route::get('customer', function(){
return view('customer');
})
route::view('/',customer);`
预期结果:static boolean boola, boolb, boolc;
public static void main(String[] args) {
boolean bool = (boola = true) || (boolb = true) && (boolc = true);
System.out.println("" + boola + boolb + boolc);
}
实际结果:truetruetrue
答案 0 :(得分:3)
||
是短路操作。如果第一个操作数为true,则它甚至不求值第二个。
(boola = true)
的值为true,并且评估仅在此处停止。因此,其他布尔值保留其原始值:false。