Тернарный оператор — это удобный способ записи условных выражений в одну строку. Он позволяет сделать код более лаконичным и читаемым.
condition ? expressionIfTrue : expressionIfFalse;

void main() {
int age = 18;
String access = age >= 18 ? 'Доступ разрешён' : 'Доступ запрещён';
print(access);
}В этом примере проверяется значение переменной age. Если возраст 18 лет или больше, программа выводит «Доступ разрешён», иначе — «Доступ запрещён».
Тернарный оператор является синтаксическим сахаром для условного выражения if-else.
Понятие синтаксический сахар чаще всего обозначает упрощённое написание кода. Не все одинаково положительно относятся к таким сокращениям.
Я в реальных проектах видел неудачные использования тернарных операторов, вложенных один в другого, на несколько строк. Это сильно ухудшает читаемость кода и усложняет его понимание.
Например, вот так:
void main() {
int score = 75;
String result = score > 90
? "Отлично"
: score > 80
? "Хорошо"
: score > 70
? "Удовлетворительно"
: score > 60
? "Плохо"
: "Очень плохо";
print("Результат: $result");
}Хотя тернарный оператор удобен, его не рекомендуется применять в сложных условиях, где он может ухудшить читаемость кода. В таких случаях лучше использовать if-else.
Задача: Дано целое число n. Используйте тернарный оператор, чтобы определить, является ли оно чётным или нечётным.
Примеры:
checkEvenOdd(7) → "Нечётное"
checkEvenOdd(10) → "Чётное"
checkEvenOdd(0) → "Чётное"Задача: Дано целое число age, представляющее возраст человека. Используйте тернарный оператор, чтобы определить, является ли он совершеннолетним (18 лет и старше) или нет.
Примеры:
checkAdult(16) → "Несовершеннолетний"
checkAdult(18) → "Совершеннолетний"
checkAdult(21) → "Совершеннолетний"Задача: Дано целое число num. Используйте тернарный оператор, чтобы определить, является ли оно положительным, отрицательным или нулём.
Примеры:
checkNumber(-5) → "Отрицательное"
checkNumber(10) → "Положительное"
checkNumber(0) → "Ноль"Задача: Даны два числа a и b. Используйте тернарный оператор, чтобы найти меньшее из них.
Примеры:
minValue(10, 20) → 10
minValue(5, 3) → 3
minValue(7, 7) → 7Задача: Дано значение purchaseAmount, представляющее сумму покупки. Используйте тернарный оператор, чтобы определить размер скидки:
Примеры:
getDiscount(120) → "Скидка: 10%"
getDiscount(75) → "Скидка: 5%"
getDiscount(30) → "Скидка: 0%"