Тернарный оператор

Тренажер по Java для пользователей с начальным уровнем подготовки.

Тренажер по Java

Тернарный оператор в Java — это компактная замена простому if-else. Он позволяет записать условное выражение в одну строку и сразу получить результат.

Синтаксис: условие ? значениеTrue : значениеFalse

Оператор проверяет условие. Если оно истинно, возвращается первое значение (после ?), иначе — второе (после :). Например: int max = (a > b) ? a : b; — переменная получит большее из двух чисел.

  • Используй для простых условий и присваиваний
  • Не злоупотребляй вложенными тернарными операторами — код станет нечитаемым

Онлайн-задания ниже помогут закрепить синтаксис и понять, как работает этот оператор на практике.

Список тем

1. Базовый синтаксис

id: 40446_tern_01_replace_basic

В этом задании вам предстоит вспомнить базовый синтаксис тернарного оператора в Java. Тернарный оператор позволяет компактно записать условное выражение, возвращающее одно из двух значений в зависимости от истинности условия. В приведённом фрагменте кода пропущены ключевые символы, необходимые для работы тернарного оператора. Ваша задача — вставить пропущенные символы так, чтобы программа корректно вычислила максимальное из двух заданных чисел и вывела результат. Обратите внимание на имена переменных и логику условия.

Заполните пропуски
int a = 5;
int b = 10;
int max = (a > b) input1S a input2S b;
System.out.println("Максимум: " + max);
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

2. Вычисли результат

id: 40446_tern_02_give_result

В данном задании вам предстоит проанализировать короткий фрагмент кода на Java, использующий тернарный оператор. Тернарный оператор — это компактная форма условного выражения, которая возвращает одно из двух значений в зависимости от истинности условия. Ваша задача — мысленно выполнить код и определить, какое значение будет присвоено переменной result (или что будет выведено на экран, если в коде есть вывод). Введите полученный результат в поле ответа в виде одного числа.

Что должно получиться?
public class Main {
    public static void main(String[] args) {
        int a = 12;
        int b = 7;
        int result = (a > 10) ? (b < 5 ? 1 : 2) : 3;
        System.out.println(result);
    }
}
Сообщения
Проверить
Показать подсказку

3. Что выведет код?

id: 40446_tern_03_predict

Проанализируйте представленный фрагмент кода на Java, использующий тернарный оператор. Переменные инициализированы конкретными целочисленными значениями. Внимательно оцените условие тернарного оператора и определите, какое значение будет выведено на экран в результате выполнения программы. Выберите один правильный вариант из предложенных.

Выберите правильный вариант ответа
int a = 8;
int b = 3;
int c = 5;
System.out.println(a > b ? (a > c ? a : c) : (b > c ? b : c));
Сообщения
Проверить
Показать подсказку

4. Найди ошибку

id: 40446_tern_04_error

В этом фрагменте Java-кода, использующем тернарный оператор, допущена синтаксическая ошибка: отсутствует необходимый символ или нарушен порядок операндов. Найдите строку с ошибкой и исправьте её, чтобы код скомпилировался и корректно определил максимальное из двух чисел. Обратите внимание на правильный синтаксис тернарного оператора в Java.

Найдите ошибку и исправьте
public class Main {
    public static void main(String[] args) {
        int a = 10, b = 20;
        int max = (a > b) ? a b;
        System.out.println("Максимум: " + max);
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

5. Порядок вычисления

id: 40446_tern_05_sequence

В этом задании вам представлены шаги выполнения тернарного оператора в Java в перемешанном порядке. Ваша задача — восстановить правильную последовательность этих шагов, отражающую логику вычисления тернарного оператора: от вычисления условия до возврата результата. Расставьте шаги сверху вниз в том порядке, в котором они выполняются при работе тернарного оператора.

Расставьте строки в правильном порядке
Завершение: возврат вычисленного значения как результата тернарного оператора.
Начало выполнения тернарного оператора: вычисление условия.
Для ветки false: вычисление выражения после знака :.
Для ветки true: вычисление выражения после знака ?.
Проверка условия: если оно равно true, выполняется ветка true; если false, ветка false.
Сообщения
Проверить
Показать подсказку

6. Замена if-else

id: 40446_tern_06_select_fill

В этом задании вам нужно преобразовать конструкцию if-else в эквивалентный тернарный оператор. Вы увидите блок кода с условным оператором, а ниже — неполный тернарный оператор с пропусками. Используя выпадающие списки, выберите подходящие части (условие, значения для true и false) из предложенных вариантов, чтобы тернарный оператор работал идентично исходному if-else. Обратите внимание на синтаксис тернарного оператора и типы данных.

Нужно правильно расставить в пропуски предложенные варианты
int a = 5;
int b = 3;
int max;

// Блок if-else:
if (a > b) {
    max = a;
} else {
    max = b;
}

// Эквивалентный тернарный оператор:
max = (input1S) ? input2S : input3S;
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

7. Собери выражение

id: 40446_tern_07_build

Из предложенных строк соберите корректное тернарное выражение на Java, которое проверяет, является ли целое число num чётным, и присваивает переменной result строку "чётное" или "нечётное" в зависимости от результата. Некоторые строки являются лишними и не должны входить в итоговое выражение. Обратите внимание на синтаксис тернарного оператора и правильную расстановку знаков.

Перетяните в правильном порядке строки из одного блока в другой
String result =
(num % 2 == 0)
?
"чётное"
:
"нечётное"
;
int num = 10;
System.out.println(result);
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

8. Вложенный тернарный оператор

id: 40446_tern_08_nested_predict

Проанализируйте приведенный фрагмент кода на Java, содержащий вложенный тернарный оператор. Определите, какая строка будет выведена на экран при заданном значении переменной. Выберите один правильный вариант из пяти предложенных.

Выберите правильный вариант ответа
public class Main {
    public static void main(String[] args) {
        int number = -5;
        String result = number > 0 ? "Положительное" : (number < 0 ? "Отрицательное" : "Ноль");
        System.out.println(result);
    }
}
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру