写一个计算器

发布时间 2023-03-23 01:30:17作者: 盗版太极
public class Calculator {
    public static void main(String[] args) {
        //写一个计算器,要求实现加减乘除功能,并且能够循环接收新的数据,通过用户交互实现。
        //◆思路推荐:
        //写4个方法:加减乘除
        //利用循环+ switch进行用户交互
        //传递需要操作的两个数
        //输出结果
        boolean loop = true;
        Scanner scanner = new Scanner(System.in);
        while (loop) {
            System.out.println("请输入第一个数字:");
            double num1 = scanner.nextDouble();
            System.out.println("请输入第二个数字:");
            double num2 = scanner.nextDouble();
            System.out.println("请继续输入你要选择的:1 +; 2 -; 3 *; 4 /");
            String operator = scanner.next();

            double result = 0.0;
            switch (operator) {
                case "+":
                    result = add(num1, num2);
                    break;
                case "-":
                    result = sub(num1, num2);
                    break;
                case "*":
                    result = mul(num1, num2);
                    break;
                case "/":
                    if (num2 == 0) {
                        System.out.println("输入不能为零,请重新输入");
                        continue;
                    }
                    result = div(num1, num2);
                    break;
                default:
                    System.out.println("输入错误,请重新输入");
                    continue;
            }
            System.out.println("运算结果为" + result);
            System.out.println("继续输入请按Y,否则请按N");
            String input = scanner.next();
            if ("N".equalsIgnoreCase(input)) {
                loop = false;
            }
        }
        scanner.close();

    }

    public static double add(double... numbers){//加法
        double result = numbers[0];
        for (int i = 1; i < numbers.length ; i++) {
            result += numbers[i];
        }
        return result;
    }

    public static double sub(double... numbers){//减法
        double result = numbers[0];
        for (int i = 1; i < numbers.length ; i++) {
            result -= numbers[i];
        }
        return result;
    }

    public static double mul(double... numbers){//乘法
        double result = numbers[0];
        for (int i = 1; i < numbers.length ; i++) {
            result *= numbers[i];
        }
        return result;
    }

    public static double div(double... numbers){//除法
        double result = numbers[0];
        for (int i = 1; i < numbers.length ; i++) {
            result /= numbers[i];
        }
        return result;
    }
}