为什么这个基本的Java布尔表达式不起作用?

Arm*_*sch -3 java

为什么这不用Java(v1.8)计算.对我来说似乎完全符合逻辑......

boolean banana = true;
(banana == true || false) ? System.out.println("True") : System.out.println("False");
Run Code Online (Sandbox Code Playgroud)

输出消息:错误:java:不是语句

Era*_*ran 12

三元条件运算符必须返回一个值.第二个和第三个操作数不能是不返回任何内容的语句.它们必须是返回值的表达式.

你可以把它切换到:

System.out.println(banana ? "True" : "False");
Run Code Online (Sandbox Code Playgroud)

需要注意的是banana == true || false相当于banana == true,这相当于banana作为banana本身就是一个boolean类型.