_三元运算符_可以看作是 if-else 的紧凑版本。它通常用在返回语句中(但不仅限于此),只需一行就能做出判断:如果表达式为true,就返回左边的值;如果为false,就返回右边的值。
很多简单的 if/else 表达式都可以用 三元运算符 来简化。
// this ternary statement
return 5 > 4 ? true : false;
// is equivalent to this if/else
if ( 5 > 4 ) {
return true;
} else {
return false;
}
那么,如何在 if-else 和 三元运算符 之间做选择?_三元运算符_适合简单的场景:只需根据条件返回一个值,不需要额外的计算。其他情况就用 if-else,比如嵌套条件、复杂的表达式,或者需要多行才能确定返回值的时候。
虽然 三元运算符 可以嵌套,但代码往往变得难以阅读。这种情况下,最好使用嵌套的 if。
// hard to read
int value = expr1 ? expr2 && expr3 ? val1 : (val2 + val3) : expr4;
// easier to read
if (expr1){
if (expr2 && expr3){
return val1;
}
return val2 + val3;
}
return val4;
_三元运算符_和 if/else 语句就是一个很好的例子,说明在编程中可以用不同的方式达到相同的结果。