Java中的运算符优先级和逻辑运算符

时间:2019-03-23 08:23:15

标签: java logical-operators

当我执行下面的代码时,我得到下面的输出。但是根据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

1 个答案:

答案 0 :(得分:3)

||是短路操作。如果第一个操作数为true,则它甚至不求值第二个。

(boola = true)的值为true,并且评估仅在此处停止。因此,其他布尔值保留其原始值:false。