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();

システムに入力を取り込んでいるので、それらを検証する必要があります。 たとえば、演算子が+、-、*、または/でない場合、電卓は不正な入力を呼び出す必要があります。 同様に、除算演算で2番目の数値を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は1回だけ使用されます。

また、計算の最大範囲は2147483647です。 したがって、それを超えると、intデータ型からオーバーフローします。 したがって、より大きなデータ型の変数、たとえばdoubleデータ型に格納する必要があります。

4. 結論

このチュートリアルでは、2つの異なる構成を使用して、Javaで基本的な電卓を実装しました。 また、入力をさらに処理する前に、入力が検証されていることを確認しました。

いつものように、コードはGitHubから入手できます。