Тернарный оператор ?
Тернарный оператор ? - это единственный оператор в Java, который принимает три операнда. Он представляет собой сокращенную форму записи конструкции if-else и позволяет вернуть одно из двух значений в зависимости от истинности логического выражения. Первым параметром оператор принимает условие (логическое выражение), вторым - значение, которое будет возвращено, если условие истинно, третьим - значение, если условие ложно. Синтаксически тернарный оператор состоит из знака вопроса ? и двоеточия :, разделяющих три части выражения.
Синтаксис
condition ? valueIfTrue : valueIfFalse
Пример
Давайте сравним два числа и вернем строку с результатом сравнения:
public class Main
{
public static void main(String[] args)
{
int a = 5;
int b = 3;
String res = a > b ? "a больше b" : "a не больше b";
System.out.println(res);
}
}
Результат выполнения кода:
"a больше b"
Пример
Давайте найдем максимальное из двух чисел:
public class Main
{
public static void main(String[] args)
{
int a = 10;
int b = 25;
int max = a > b ? a : b;
System.out.println(max);
}
}
Результат выполнения кода:
25
Пример
Давайте проверим, является ли число четным, и вернем соответствующую строку:
public class Main
{
public static void main(String[] args)
{
int num = 7;
String res = num % 2 == 0 ? "четное" : "нечетное";
System.out.println(res);
}
}
Результат выполнения кода:
"нечетное"
Пример
Тернарный оператор можно вкладывать друг в друга для проверки нескольких условий:
public class Main
{
public static void main(String[] args)
{
int score = 75;
String res = score >= 90 ? "отлично" :
score >= 70 ? "хорошо" :
score >= 50 ? "удовлетворительно" : "неудовлетворительно";
System.out.println(res);
}
}
Результат выполнения кода:
"хорошо"
Пример
Давайте используем тернарный оператор для проверки строки на пустоту:
public class Main
{
public static void main(String[] args)
{
String str = "abcde";
String res = str.isEmpty() ? "пустая строка" : "строка не пустая";
System.out.println(res);
}
}
Результат выполнения кода:
"строка не пустая"
Смотрите также
-
оператор
if,
который выполняет код при истинном условии -
оператор
else,
который выполняет код при ложном условии -
оператор
switch,
который выбирает один из множества вариантов -
оператор
instanceof,
который проверяет тип объекта