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 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.");
}
Пользовательские входы сначала проверяются. После этого результат расчета будет отображаться в виде:
<число1> <операция> <число2> = <результат>
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 (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 .