如何将以下 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/