$ sudo teach IT
МОДУЛЬ 3 · УРОК 6

Практика: калькулятор на условиях

Пришло время применить все знания из модуля 3. Мы напишем простой калькулятор, который выбирает операцию через switch и выполняет вычисления через if-else.

⏱ ~20 минут 🎓 Для начинающих 📌 Финал модуля 3

📋 Постановка задачи

Создадим программу-калькулятор, которая:

  1. Принимает два числа и символ операции (+, -, *, /)
  2. Выбирает операцию через switch
  3. Выполняет вычисление
  4. Обрабатывает деление на ноль
  5. Выводит результат

🔧 Реализация через if-else

public class CalculatorIfElse {
    public static void main(String[] args) {
        double a = 10.0;
        double b = 3.0;
        char operation = '*';

        double result;

        if (operation == '+') {
            result = a + b;
        } else if (operation == '-') {
            result = a - b;
        } else if (operation == '*') {
            result = a * b;
        } else if (operation == '/') {
            if (b != 0) {
                result = a / b;
            } else {
                System.out.println("Ошибка: деление на ноль!");
                return;
            }
        } else {
            System.out.println("Неизвестная операция: " + operation);
            return;
        }

        System.out.println(a + " " + operation + " " + b + " = " + result);
    }
}

🔧 Реализация через switch

public class CalculatorSwitch {
    public static void main(String[] args) {
        double a = 10.0;
        double b = 3.0;
        char operation = '/';

        double result = 0;
        boolean valid = true;

        switch (operation) {
            case '+':
                result = a + b;
                break;
            case '-':
                result = a - b;
                break;
            case '*':
                result = a * b;
                break;
            case '/':
                if (b != 0) {
                    result = a / b;
                } else {
                    valid = false;
                    System.out.println("Ошибка: деление на ноль!");
                }
                break;
            default:
                valid = false;
                System.out.println("Неизвестная операция: " + operation);
        }

        if (valid) {
            System.out.println(a + " " + operation + " " + b + " = " + result);
        }
    }
}

🔧 Современный switch (Java 14+)

public class CalculatorModern {
    public static void main(String[] args) {
        double a = 10.0;
        double b = 3.0;
        char operation = '+';

        String result = switch (operation) {
            case '+' -> String.valueOf(a + b);
            case '-' -> String.valueOf(a - b);
            case '*' -> String.valueOf(a * b);
            case '/' -> b != 0 ? String.valueOf(a / b) : "Ошибка: деление на ноль!";
            default -> "Неизвестная операция";
        };

        System.out.println(a + " " + operation + " " + b + " = " + result);
    }
}

📊 Сравнение подходов

Критерий if-else switch (классический) switch (современный)
Читаемость Хорошая Средняя Отличная
Безопасность Высокая Средняя (break!) Высокая
Гибкость Любые условия Только сравнение Сравнение + выражения

✅ Итоги модуля 3

  • Операторы сравнения: ==, !=, >, <, >=, <=
  • if / else if / else — условные конструкции
  • Логические операторы: &&, ||, !
  • Short-circuit evaluation — ленивое вычисление
  • Тернарный оператор: условие ? a : b
  • Switch — классический (с break) и современный (с ->)
  • Для строк и enum switch работает через equals()
  • Читаемость важнее компактности

Далее: Модуль 4: Циклы — while, do-while, for, break/continue →

Проверяем понимание модуля 3

3 вопроса

Простой калькулятор

Premium