Тернарный оператор в Java
Пусть у нас есть следующий код, проверяющий,
есть ли уже пользователю 18 лет или нет:
int age = 17;
boolean adult = false;
if (age >= 18) {
adult = true;
} else {
adult = false; // сработает это
}
System.out.println(adult); // выведет false
Как вы видите, конструкция if-else
нужна только для того, чтобы записать
определенное значение в переменную
adult. Для таких задач, когда у нас
в условии происходит только запись одной
переменной, существует более короткое решение
через так называемый тернарный оператор.
Слева пишут переменную, затем условие, знак вопроса, значение при ответе «да», двоеточие и значение при ответе «нет».
Оператор работает так: если условие истинно, то возвращается первое значение, в противном случае - второе. Давайте перепишем приведенный в самом начале урока код через тернарный оператор:
int age = 17;
boolean adult = age >= 18 ? true : false;
System.out.println(adult); // выведет false
Можно не записывать результат в переменную, а сразу вывести его:
int age = 17;
System.out.println(age >= 18 ? true : false); // выведет false
Тернарный оператор следует использовать только в самых простых случаях, так как его использование затрудняет понимание кода.
Перепишите следующий код так, чтобы значение сразу записывалось в переменную:
int num = 1;
String res = "";
if (num >= 0) {
res = "1";
} else {
res = "2";
}
System.out.println(res);
Пусть дана переменная num, которая
может быть либо отрицательной, либо
положительной. Запишите в переменную
res число 1, если переменная
num больше или равна нулю, и число
-1, если переменная num
меньше нуля.