512*_*bee 0 java if-statement ternary-operator
如何将以下2行if-statments写入一行代码:
if (s1.length() == 0)
return "hello";
if (s2.length() == 0)
return "goodbye";
Run Code Online (Sandbox Code Playgroud)
我想学习如何以三元运算符格式编写它:
if ? then : else
Run Code Online (Sandbox Code Playgroud)
但是我的例子PLUS中没有"else",我有两个"if"语句,所以这让我很困惑.
是否可以将这两个if语句组合成一行代码?
但我的例子中没有"其他"
为了用条件运算符写这个,我们最后需要 "else"的情况.所以:
if (s1.length() == 0)
return "hello";
if (s2.length() == 0)
return "goodbye";
return "neither";
Run Code Online (Sandbox Code Playgroud)
如果没有该最终值,则无法使用条件运算符编写此值.
有了这个最终值,你可以,但我不建议从可读性或维护角度来看:
return s1.length() == 0 ? "hello" : s2.length() == 0 ? "goodbye" : "neither";
Run Code Online (Sandbox Code Playgroud)
你可以看到一个if/else几乎映射的"then"和"else"如何直接进入条件的第二和第三个操作数.
有趣的事实:它被恰当地称为条件运算符.它通常被称为"三元运算符",但实际上它只是一个三元运算符(一个接受三个操作数的运算符,就像二元运算符接受两个操作数而一元运算符接受一个操作数).它是Java目前唯一的三元运营商,但从理论上讲,总有一天,它可能会有其他人......