Java - Руководство по принятию решений для начинающих

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

Java - Decision Making

Управляющие выражения Java

Управляющие выражения являются основой для принятия решений в Java. Они позволяют нашим программам выполнять различные блоки кода на основе конкретных условий. Начнем с самого распространенного: оператор if.

Оператор if

Оператор if похож на светофор для вашего кода. Он проверяет условие и, если оно истинно, позволяет выполнить блок кода.

int age = 18;
if (age >= 18) {
    System.out.println("Вы можете голосовать!");
}

В этом примере, если возраст 18 лет или старше, сообщение будет отображено. Если нет, ничего не произойдет. Просто, правда?

Оператор if-else

Но что делать, если мы хотим сделать что-то, когда условие ложно? Введите оператор if-else:

int temperature = 25;
if (temperature > 30) {
    System.out.println("На улице жарко!");
} else {
    System.out.println("Погода хорошая.");
}

Здесь, если температура выше 30, мы увидим сообщение "жарко". В противном случае, мы увидим сообщение "хорошая".

Лестница if-else-if

Иногда нам нужно проверить несколько условий. Вот тут приходит на помощь лестница if-else-if:

int score = 75;
if (score >= 90) {
    System.out.println("Оценка А");
} else if (score >= 80) {
    System.out.println("Оценка B");
} else if (score >= 70) {
    System.out.println("Оценка C");
} else {
    System.out.println("Нужно улучшить");
}

Этот код проверяет оценку и присваивает соответствующую оценку. Это как серия препятствий, и код останавливается на первом истинном условии.

Оператор switch

Когда у вас есть несколько вариантов на основе одной переменной, оператор switch может стать вашим лучшим другом:

int dayNumber = 3;
switch (dayNumber) {
    case 1:
        System.out.println("Понедельник");
        break;
    case 2:
        System.out.println("Вторник");
        break;
    case 3:
        System.out.println("Среда");
        break;
    // ... другие дни ...
    default:
        System.out.println("Неверный номер дня");
}

Оператор switch проверяет значение dayNumber и выполняет соответствующий случай. Значение default служит сеткой безопасности для неожиданных значений.

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

Теперь поговорим о удобной уловке в Java: тернарном операторе. Это как укороченная форма if-else:

int x = 10;
String result = (x > 5) ? "Больше 5" : "Меньше или равно 5";
System.out.println(result);

Эта однострочка проверяет, больше ли x 5. Если да, она присваивает "Больше 5" результату; иначе присваивает "Меньше или равно 5".

Примеры в действии

Поместим наши новые знания в работу с реальным примером. Представьте, что мы создаем простую программу для определения цен на билеты в кинотеатр:

public class MovieTicketPricing {
    public static void main(String[] args) {
        int age = 25;
        boolean isStudent = false;
        boolean isWeekend = true;

        double ticketPrice;

        if (age < 12) {
            ticketPrice = 5.0;
        } else if (age >= 65) {
            ticketPrice = 7.0;
        } else if (isStudent) {
            ticketPrice = 8.0;
        } else {
            ticketPrice = 12.0;
        }

        if (isWeekend) {
            ticketPrice += 2.0;
        }

        System.out.println("Цена вашего билета: $" + ticketPrice);
    }
}

В этом примере мы используем несколько операторов if-else для определения базовой цены билета на основе возраста и статуса студента. Затем мы используем другой оператор if для добавления сбора за выходные, если это применимо.

Таблица управления потоком

Вот удобная таблица, подводящая итог управляющим выражениям, которые мы рассмотрели:

Выражение Назначение Синтаксис
if Выполняет код, если условие истинно if (условие) { код }
if-else Выполняет один блок, если истина, другой если ложно if (условие) { код1 } else { код2 }
if-else-if Проверяет несколько условий последовательно if (условие1) { код1 } else if (условие2) { код2 } else { код3 }
switch Выполняет один из множества блоков кода switch(выражение) { case значение1: код1; break; ... default: кодDefault; }
?: (тернарный) Краткая форма if-else для присваиваний результат = (условие) ? значение1 : значение2;

Заключение

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

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

Что дальше? Мы погружаемся в циклы, которые позволяют нам эффективно повторять блоки кода. Готовьтесь поднять свои навыки на Java на новый уровень!

Credits: Image by storyset