МОДУЛЬ 3 · УРОК 6
Практика: калькулятор на условиях
Пришло время применить все знания из модуля 3. Мы напишем простой калькулятор, который выбирает операцию через switch и выполняет вычисления через if-else.
⏱ ~20 минут
🎓 Для начинающих
📌 Финал модуля 3
📋 Постановка задачи
Создадим программу-калькулятор, которая:
- Принимает два числа и символ операции (+, -, *, /)
- Выбирает операцию через switch
- Выполняет вычисление
- Обрабатывает деление на ноль
- Выводит результат
🔧 Реализация через 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 вопроса