【问题标题】:refactoring if else to Single line conditional statement in Java?将 if else 重构为 Java 中的单行条件语句?
【发布时间】:2021-12-21 22:21:01
【问题描述】:

如果要检查,我想写单行。但我遇到了错误。

请帮忙

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

有没有办法让上面的代码像下面一样单一。在下面的行中出现编译错误

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

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

【问题讨论】:

  • 注意:这不是“重新格式化”。它正在重构……或重写。重新格式化意味着你只关心代码的格式,而不是它的实质。

标签: java if-statement conditional-statements


【解决方案1】:

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

相反,你可以这样写:

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

现在您有了一个三元条件表达式,它产生一个值(“aaa”或“bbb”),并将该值传递给System.out.println

【讨论】:

  • 此外,您不能将?:用作表达式语句,即使第二个和第三个操作数是表达式,例如someCondition ? 1 : 2; 无效:您必须对表达式的值做一些事情,例如int a = someCondition ? 1 : 2;.
【解决方案2】:

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

你可以使用:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-11
    • 2019-04-09
    • 1970-01-01
    • 2021-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    相关资源
    最近更新 更多