嵌套if语句的等价三元运算符替代写法问询
嵌套if语句的三元运算符等价写法
嘿,这个问题其实很好拆解,咱们先把原嵌套if的逻辑理清楚,再对应转换成三元表达式就搞定啦~
先看你给出的嵌套if代码:
if (a > b) { max = a; } else { if (c > d) max = c; else max = d; }
它的逻辑很明确:
- 当
a > b时,把a赋值给max - 否则,再判断
c和d的大小:如果c > d就赋值c给max,反之则赋值d
三元运算符是支持嵌套使用的,咱们直接把else分支里的嵌套if转换成另一个三元表达式就行,最终的等价写法是:
max = (a > b) ? a : ((c > d) ? c : d);
这里内层的括号其实可以省略(因为三元运算符是右结合的),写成下面这样也完全合法:
max = (a > b) ? a : (c > d) ? c : d;
不过加上括号会让逻辑层级更清晰,尤其是刚接触嵌套三元的朋友,可读性会好很多。
小提一句:如果嵌套的三元层级过多,代码会变得晦涩难读,这种时候还是保留if...else结构会更友好哦~
内容的提问来源于stack exchange,提问作者robert
相关产品推荐
相关产品推荐

