2016-09-06 12 views
4

a ? x : yまたはquestion ? answer1 : answer2のように、if {} else {}のステートメントに3項条件演算子を使用できます。elseの場合の3項条件演算子

else if句でこの形式を使用できますか。例えば。何かのように:

a ? b ? x : y : z

...か、これはただのやり過ぎでしょうか?

答えて

6

xya ? x : yで完全な式なので、正しいタイプの結果が得られる限り、どのようなサブ式も入力できます。

しかし、条件式のネストがすぐに管理不能になり、その括弧を使用すると、非常に良いアイデアです:

let res = a ? (b ? x : y) : z 

または

let res = a ? x : (b ? y : z) 

あるいは

let res = a ? (b ? w : x) : (c ? y : z) 
+2

笑最後に'let res ='。私はその時点で「else if」の可読性がオペレータの簡潔さよりも優先されていると思う: – chicobermuda

+0

@chicobermuda私は同意する - 従って "または"単純な "または"の代わりに "。最後の式と同じように複雑なものを書く必要がある場合は、おそらく 'if' /' else'の連鎖や場合によっては 'switch'の方が良いでしょう。 – dasblinkenlight