多选题
Given:
System.out.print(true | false &
true+",");
System.out.println(false & true |
true);
What will be printed to standard out?
- A. true, true
- B. true, false
- C. false, true
- D. false, false
- E. Compilation error
【正确答案】
E
【答案解析】在第一个打印语句中,布尔和字符串的连接是不允许的。因此,第一行不会编译。在布尔计算中添加括号来改变语句,将允许该行编译:
System.out.print((true | false & true)+",");
一旦这行是可编译的,正确的答案将是A,考虑到运算优先级,布尔与(&)运算符比布尔或(|)具有更高的优先级。A、B、C和D不正确。A不正确,因为代码不会编译。B、C和D不正确,因为如果代码被优化成可编译的,答案将会是A。