三目运算符a?b:c的嵌套
三目运算符:a?b:c
a条件是否成立,成立则b,不成立则c。非嵌套使用起来比较方便,比较容易理解。
嵌套使用三目运算符:a?b?i:j:k。
前几天看到有人使用三目运算符进行嵌套,乍看没看懂,但是大为震撼。于是花了点时间研究了一下,结果如下:
a?b?i:j:k;
//展开
if (a){
if (b)
i;
else
j;
}
else{
k;
}
若想用这个嵌套三目运算符比较三个数大小:
int k = 0, a = 1, b = 2, c = 3;
k = a > b ? a > c ? a : c : b > c ? b : c;
//展开
if (a > b) {
if (a > c)
k = a;
else
k = c;
}
else {
if (b > c)
k = b;
else
k = c;
}
感觉确实可以降低代码量,但是实际应用中没有太大的意义,这样式也降低了代码的可读性。所有正常使用还是按部就班的if else吧。
参考:
https://www.cnblogs.com/weneedknow/p/10711924.html