我是否只能在三元运算符语法的语句中使用if
和else
,还是可以以某种方式包含else if
?
示例:
if(a) {
x
}
else if(y) {
c
}
else {
b
}
答案 0 :(得分:7)
与带有可选if
或可选else
分支的else if
不同,三元运算符只有两个分支。
如果您对第二个子句进行细分,则可以使用else if
类似的功能:
a ? b : (c ? d : e)
这通常是一个坏主意,因为三元操作开始时可能会很混乱,并且这样的分层通常是对不可维护代码的快速列车。
写起来要好得多:
if (a) {
b
}
else if (c) {
{
d
}
else {
e
}
这更详细,但非常清楚。
如果您过于激烈地使用三元,那么您最终会得到如下代码:
a()?c?d?e:f:g:h?i(j?k:l?m:n):o
任何人都可以猜到那里发生了什么。
答案 1 :(得分:2)
很有可能! 你可以用这个:
a ? b : b ? c : d
答案 2 :(得分:1)
你可以堆叠多个三元组:
var x = (y) ? 1 : ( (z) ? 2 : 0 );