Contents

Java的基本计算器

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数据类型溢出。因此,它应该存储在更大数据类型 的变量中,例如双精度数据类型。