1. Обзор
В этом уроке мы реализуем базовый калькулятор на Java, поддерживающий операции сложения, вычитания, умножения и деления.
Мы также возьмем оператор и операнды в качестве входных данных и обработаем вычисления на их основе.
2. Базовая настройка
Во-первых, давайте покажем некоторую информацию о калькуляторе:
System.out.println("---------------------------------- \n" + "Welcome to Basic Calculator \n" + "----------------------------------"); System.out.println("Following operations are supported : \n" + "1. Addition (+) \n" + "2. Subtraction (-) \n" + "3. Multiplication (*) \n" + "4. Division (/) \n");
Теперь давайте использовать java.util.Сканер для ввода пользовательских данных:
Scanner scanner = new Scanner(System.in); System.out.println("Enter an operator: (+ OR - OR * OR /) "); char operation = scanner.next().charAt(0); System.out.println("Enter the first number: "); double num1 = scanner.nextDouble(); System.out.println("Enter the second number: "); double num2 = scanner.nextDouble();
Поскольку мы принимаем входные данные в систему, нам необходимо их проверить. Например, если оператор не является +, -, * или/, то ваш калькулятор должен вызвать неверный ввод. Аналогично, если мы введем второе число как 0 для операции деления, результаты не будут хорошими.
Итак, давайте реализуем эти проверки.
Во – первых, давайте сосредоточимся на ситуации, когда оператор недействителен:
if (!(operation == '+' || operation == '-' || operation == '*' || operation == '/')) { System.err.println("Invalid Operator. Please use only + or - or * or /"); }
Тогда мы можем показать ошибки для недопустимых операций:
if (operation == '/' && num2 == 0.0) { System.err.println("The second number cannot be zero for division operation."); }
Вводимые пользователем данные сначала проверяются. После этого результат расчета будет отображаться в виде:
<операция> = <результат>
3. Обработка Расчетов
Во-первых, мы можем использовать конструкцию if-else для обработки вычислений
if (operation == '+') { System.out.println(num1 + " + " + num2 + " = " + (num1 + num2)); } else if (operation == '-') { System.out.println(num1 + " - " + num2 + " = " + (num1 - num2)); } else if (operation == '*') { System.out.println(num1 + " x " + num2 + " = " + (num1 * num2)); } else if (operation == '/') { System.out.println(num1 + " / " + num2 + " = " + (num1 / num2)); } else { System.err.println("Invalid Operator Specified."); }
Аналогично, мы можем использовать оператор Java switch:
switch (operation) { case '+': System.out.println(num1 + " + " + num2 + " = " + (num1 + num2)); break; case '-': System.out.println(num1 + " - " + num2 + " = " + (num1 - num2)); break; case '*': System.out.println(num1 + " x " + num2 + " = " + (num1 * num2)); break; case '/': System.out.println(num1 + " / " + num2 + " = " + (num1 / num2)); break; default: System.err.println("Invalid Operator Specified."); break; }
Мы можем использовать переменную для хранения результатов расчета. В результате его можно распечатать в конце. В этом случае System.out.println будет использоваться только один раз.
Кроме того, максимальный диапазон для расчетов составляет 2147483647. Следовательно, если мы превысим его, мы будем переполняться из типа данных int . Поэтому он должен храниться в переменной типа данных большего размера , например, типа данных double .
4. Заключение
В этом уроке мы реализовали базовый калькулятор на Java, используя две различные конструкции. Мы также убедились, что входные данные проверены перед их дальнейшей обработкой.
Как всегда, код доступен на GitHub .