Java一行如果不适用于打印

Cam*_*ros 2 java if-statement

如果你写的东西如下:

    boolean condition;
    (...)
    String out = condition ? "true" : "false";
    System.out.println(out);
Run Code Online (Sandbox Code Playgroud)

有用.但如果你写

    condition ? System.out.println("true") : System.out.println("false");
Run Code Online (Sandbox Code Playgroud)

你得到一个"非声明"的错误."正确"的方式是写(使用大括号或"成为或不成一行"超出了问题的范围):

    if (condition)
        System.out.println("true");
    else
        System.out.println("false");
Run Code Online (Sandbox Code Playgroud)

为什么?一行if必须总是返回一个值?

编辑:向大家指出这一点

    condition ? System.out.println("true") : System.out.println("false");
Run Code Online (Sandbox Code Playgroud)

是不是一个正确的语法,是的,我得到了那一部分.我不是要求解决方案(尽管如此)

    System.out.println(condition ? "true" : "false");
Run Code Online (Sandbox Code Playgroud)

很好

@Andrew Tobilko在哪里说明了什么?THAT是我很感兴趣的内容.

编辑2:接受的答案提供了我想要的.谢谢

dry*_*hip 5

condition ? System.out.println("true") : System.out.println("false"); 不是声明.

这里:

在计算机科学中,三元运算符是一个带有三个参数的运算符.

System.out.println("true") 不符合参数,因为该方法println()属于void类型.因此,这不是一个声明.

请改用:

System.out.println(condition ? "true" : "false");