016 Java Ternary Operator

Тернарный оператор “?:” — введение в Java 016 #

Выражение:

if (условие) {
   number = 10;
}
else {
   number = -10;
}

Можно заменить на

number = (условие) ? 10 : -10;

То есть ?: укороченный условный оператор if, if-else из седьмого урока

переменная = (выражение) ? значение if true : значение if false
public static void ternar(int schoolАttestat){
    String resultAtHome = "";
    resultAtHome = (schoolАttestat >= 3) ? "Ребёнок переходит в следуюший класс" : "Ребёнок остаётся на второй год";
    System.out.println( "Результат учёбы за год: " +  resultAtHome);
   }

Ещё пример для закрепления:

class TernarOperator {
   public static void main(String[] args) {   
      Double kelvin = -273.15;
      String result;
      
      result = (kelvin > 0.0) ? "positive" : "not positive";
      System.out.println(number + " is " + result);
   }
}

Рекурсивный метод нахождения факториала для будущего урока можно записать так:

    static int fact(int num) {
        return ((num > 1) ? num * fact(num - 1) : 1);
    }

Тернарный оператор применяют когда абсолютно простая операция может иметь два варианта развития. Это так называемый синтаксический сахар. Помогает быстрее и лаконичнее писать код.

Я несколько раз видел, как тернарный оператор вкладывают один в другого. Я не буду приводить пример, потому что моё личное мнение - такой код абсолютно нечитаем.

Дополнительная ссылка #

https://www.baeldung.com/java-ternary-operator

Домашнее задание #

  1. Компьютер загадывает число от 1 до n. У пользователя k попыток отгадать. После каждой неудачной попытки компьютер сообщает меньше или больше загаданное число. В конце игры текст с результатом (или “Вы угадали”, или “Попытки закончились”).