Тернарный оператор — это удобный способ записи условных выражений в одну строку. Он позволяет сделать код более лаконичным и читаемым.
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%"