java - 如何将两个 If 语句写入一行(三元运算符)?

标签 java if-statement ternary-operator

如何将以下 2 行 if 语句写入一行代码:

  if (s1.length() == 0)
       return "hello";
  if (s2.length() == 0)
       return "goodbye";

我想学习如何以三元运算符格式编写它:

  if ? then : else

但是我的示例中没有“else”,而且我有两个“if”语句,所以这让我感到困惑。

是否可以将这 2 个 if 语句组合成一行代码?

最佳答案

but I don't have an "else" in my example

为了使用条件运算符编写此内容,我们需要末尾的“else”情况。所以:

if (s1.length() == 0)
    return "hello";
if (s2.length() == 0)
    return "goodbye";
return "neither";

如果没有最终值,您就无法使用条件运算符编写此内容。

使用最终值,您可以,但从可读性或维护的角度我不会推荐它:

return s1.length() == 0 ? "hello" : s2.length() == 0 ? "goodbye" : "neither";

您可以看到 if/else 的“then”和“else”几乎直接映射到条件的第二个和第三个操作数。

<小时/>

有趣的事实:它的正确名称是 conditional operator 。它通常被称为“三元运算符”,但实际上它只是一个三元运算符(接受三个操作数的运算符,就像二元运算符接受两个操作数和一个一元运算符接受一个)。它是 Java 目前唯一的三元运算符,但理论上,有一天,它可能会有其他的......

关于java - 如何将两个 If 语句写入一行(三元运算符)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42107218/

相关文章:

c# - 检测到无法访问的代码,if 语句中的变量

三元运算符和类型转换的混淆

java - 如何在 spring Controller 中处理数据库特定异常

java - 图像未存储在 postgres 中

java - 如何检查 IP 地址是否是多宿主系统上的本地主机?

javascript - 当三元测试大于/小于条件时,简写是什么?

javascript - 如果在具有函数的 Javascript 中,则为三元

java - 带有提交的 Android 单选按钮不起作用

r - 如何选择(并进行计算)一行及其下面的行

linux - bash "if.. elif"脚本中的语法错误