在Java中将if-else重构为单行条件语句



如果else检查,我想写单行。但我错了。

请帮助

if(x == 1) {
System.out.println("aaa");
}else {
System.out.println("bbb");
}

有没有一种方法可以使上面的代码像下面一样单一。在行下中获取编译错误

x == 1 ? System.out.println("aaa") : System.out.println("bbb");

请帮忙。我想我可能犯了一个愚蠢的错误。

条件三元表达式的第二个和第三个参数必须是表达式,因此它们不能是System.out.println("aaa")

相反,这样你就可以写:

System.out.println (x == 1 ? "aaa" : "bbb");

现在有了一个三元条件表达式,它生成一个值("aaa"或"bbb"(,然后将该值传递给System.out.println

三元运算符只能与返回值的表达式一起使用。在您的例子中,System.out.println("aaa"(不是表达式,不能使用。

您可以使用:

System.out.println(x == 1 ? "aaa" : "bbb");

最新更新