繁体   English   中英

如何将两个if语句写成一行(三元运算符)?

[英]How To Write Two If Statements Into One Single Line (Ternary Operator)?

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

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

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

  if ? then : else

但是我的示例中没有“ else”,另外我还有两个“ if”语句,这使我感到困惑。

是否可以将这两个if语句合并为一行代码?

但我的示例中没有“ else”

为了使用条件运算符编写此代码,我们需要在末尾使用“ 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”如何直接映射到条件的第二和第三操作数。


有趣的事实:它被适当地称为条件运算符 它通常被称为“三元运算符”,但实际上它只是一个三元运算符(一个运算符接受三个操作数,就像一个二元运算符接受两个操作数,而一元运算符接受一个操作数)。 它是Java当前拥有的唯一三元运算符,但是从理论上讲,有一天它可能还会有其他三元运算符...

可能喜欢

return (s1.length() == 0) ? "hello" : (s2.length() == 0 ? "goodbye" : "something when none is satisfied");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM