Тернарні оператори можна розглядати як компактну версію if-else.
Зазвичай його використовують у (але не лише в) інструкціях return; йому потрібен лише один рядок, щоб ухвалити рішення, повертаючи ліве значення, якщо вираз 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 - гарний приклад того, що в програмуванні існують різні способи досягти одного результату.