簡易計算器實現:while循環+switch語句

個人練習:

寫一個計算器,要求實現加減乘除功能,並且能循環接收新的數據,通過用戶交互實現(即Scanner對象)

用到了 while循環 switch語句,實現了數據的循環輸入並計算!!!!妙啊!!!!

import java.util.Scanner;

public class Calculator{
    public static void main(String[] args) {
        //創建對象用來調用對象里的方法
        Calculator calculator = new Calculator();
        //調用computer方法
        calculator.computer();
    }
    //第一步:加減乘除四個方法(因為要循環計算,每次傳入一個數字,所以參數列表應該只有一個參數)
    //加法
    public static double add(double a){
        System.out.println("請輸入一個數:");
        Scanner scanner3 = new Scanner(System.in);
        double b = scanner3.nextDouble();
        return a+b;
    }
    public static double subtract(double a){
        System.out.println("請輸入一個數:");
        Scanner scanner3 = new Scanner(System.in);
        double b = scanner3.nextDouble();
        return a-b;
    }
    public static double multiply(double a){
        System.out.println("請輸入一個數:");
        Scanner scanner3 = new Scanner(System.in);
        double b = scanner3.nextDouble();
        return a*b;
    }
    public static double divide(double a){
        System.out.println("請輸入一個數:");
        Scanner scanner3 = new Scanner(System.in);
        double b = scanner3.nextDouble();
        return a/b;
    }

    //第二步:完成循環輸入數據的功能(while(true)+switch),必須創建一個方法完成這一步
    public void computer(){
        System.out.println("請輸入一個數:");
        Scanner scanner1 = new Scanner(System.in);
        double a = scanner1.nextDouble();

        while (true){
            Scanner scanner2 = new Scanner(System.in);
            System.out.println("你可以輸入的操作有:加(+)減(-)乘(*)除(/)清零(小寫的c)結束(小寫的end)--->");
            String str = scanner2.nextLine();
            switch (str){
                case "+":
                    a = add(a);
                    System.out.println("="+a);
                    break;
                case "-":
                    a = subtract(a);
                    System.out.println("="+a);
                    break;
                case "*":
                    a = multiply(a);
                    System.out.println("="+a);
                    break;
                case "/":
                    if (a == 0){
                        System.out.println("除法分子不能為零,請重新輸入:");
                        break;
                    }
                    a = divide(a);
                    System.out.println("="+a);
                    break;
                case "c":
                    computer();
                    break;
                case "end":
                    System.exit(-1);
                    break;
                default:
                    System.out.println("輸入的字元有誤!");
            }
        }
    }

}