【发布时间】:2016-07-10 17:00:51
【问题描述】:
如果你这样写:
boolean condition;
(...)
String out = condition ? "true" : "false";
System.out.println(out);
它有效。但是如果你写
condition ? System.out.println("true") : System.out.println("false");
您会收到“非陈述”错误。 “正确”的方式是这样写(大括号的用法或“是否在一行”超出了问题的范围):
if (condition)
System.out.println("true");
else
System.out.println("false");
为什么?一行ifs 必须总是返回一个值?
编辑:致所有指出这一点的人
condition ? System.out.println("true") : System.out.println("false");
不是正确的语法,是的,我得到了那部分。我不是在寻求解决方案(尽管
System.out.println(condition ? "true" : "false");
很好。
@Andrew Tobilko 这是在哪里说明的? 那是我感兴趣的。
EDIT2:接受的答案正是我想要的。谢谢
【问题讨论】:
-
PS:您的问题似乎正在从“为什么它不起作用”变为“为什么 java 不支持我刚刚提出的这个功能”。在我看来,你做了很多编辑。老实说,您的问题不再是问题。
标签: java if-statement