Java的基本计算器
Contents
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 语句:
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数据类型溢出。因此,它应该存储在更大数据类型 的变量中,例如双精度数据类型。