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数据类型就会溢出。因此,应该将其存储在更大数据类型的变量中,例如double数据类型。
4. 总结
在本教程中,我们用Java实现了一个基本计算器,使用了两种不同的结构,我们还确保在进一步处理输入之前对其进行了验证。
Show Disqus Comments
Post Directory
扫码关注公众号:Taketoday
发送 290992
即可立即永久解锁本站全部文章
