简单的用户交互计算器

写一个计算器,要求实现加减乘除功能,并且能够循环接收新的数据,通过用户交互实现

  • 写 4 个方法:加减乘除
  • 利用循环 + switch 进行用户交互
  • 传递需要操作的两个数
  • 输出结果
package com.flower.method;  
  
import java.util.Scanner;  
  
public class Demo06 {  
  
    static void main(String[] args) {  
  
        // 创建一个扫描器的对象,用于接受键盘数据  
        Scanner scanner = new Scanner(System.in);  
  
        System.out.println("========简易计算器========");  
        System.out.println("支持:+ - * / 运算,输入exit可退出程序");  
  
        while (true){  
  
            // 1.获取第一个数  
            System.out.println("请输入第一个数:");  
  
            // 判断是否输入数字  
            if (!scanner.hasNextDouble()){  
  
                // 存入数据  
                String input = scanner.next();  
  
                // 不区分大小写,如果相等,就退出程序  
                if ("exit".equalsIgnoreCase(input)) {  
  
                    System.out.println("程序已退出!");  
  
                    break;  
                }  
  
                System.out.println("输入无效,请重新输入数字:");  
  
                // 重新执行循环  
                continue;  
            }  
  
            // 获取第一个数字  
            double num1 = scanner.nextDouble();  
  
  
            System.out.println("请输入运算符:");  
  
            // 定义变量接收运算符  
            String input2;  
  
            // 判断运算符是否为空  
            if (scanner.hasNext()) {  
  
                // 2.获取输入  
                input2 = scanner.next();  
  
                // 判断退出程序  
                if ("exit".equalsIgnoreCase(input2)) {  
  
                    System.out.println("程序已退出!");  
  
                    break;  
  
                }  
  
                // 判断是否为运算符  
                if (!(("+".equals(input2) || "-".equals(input2)) || ("*".equals(input2) || "/".equals(input2)))) {  
  
                    System.out.println("无效运算符!请输入 + - * / 中的一种");  
//  
//                    scanner.next();  
  
                    continue;  
                }  
            } else {  
  
                System.out.println("无效运算符!请输入 + - * / 中的一种");  
  
//                scanner.next();  
  
                continue;  
            }  
  
            // 3.获取第二个数  
            System.out.println("请输入第二个数:");  
  
            if (!scanner.hasNextDouble()) {  
  
                // 存入数据  
                String input3 = scanner.next();  
  
                // 不区分大小写,如果相等,就退出程序  
                if ("exit".equalsIgnoreCase(input3)) {  
  
                    System.out.println("程序已退出!");  
  
                    break;  
                }  
  
                System.out.println("输入无效,请输入数字:");  
  
                // 清除错误输入  
                scanner.next();  
  
                // 重新执行循环  
                continue;  
            }  
  
            // 获取第二个数字  
            double num2 = scanner.nextDouble();  
  
            // 4.switch判断运算符类型  
  
            double result2;  
  
            // 判断需要进行的运算  
            switch (input2) {  
  
                case "+":  
  
                    result2 = sum(num1,num2);  
  
                    System.out.println(num1 + "+" + num2 + "=" +result2);  
                    System.out.println("按exit退出!");  
  
                    break;  
  
                case "-":  
  
                    result2 = subtract(num1,num2);  
                    System.out.println(num1 + "-" + num2 + "=" +result2);  
                    System.out.println("按exit退出!");  
  
                    break;  
  
                case "*":  
  
                    result2 = multiply(num1,num2);  
  
                    System.out.println(num1 + "*" + num2 + "=" +result2);  
                    System.out.println("按exit退出!");  
  
                    break;  
  
                case "/":  
  
                    result2 = divide(num1,num2);  
  
                    System.out.println(num1 + "/" + num2 + "=" +result2);  
                    System.out.println("按exit退出!");  
  
                    break;  
  
                default:  
  
                    System.out.println("无效运算符!请输入 + - * / 中的一种");  
                    System.out.println("按exit退出!");  
            }  
  
        }  
  
        // 关闭流  
        scanner.close();  
  
    }  
  
    // 加法功能方法  
    public static double sum(double... number) {  
  
        // 判断是否为空  
        if (number.length == 0) {  
  
            System.out.println("请重新输入:");  
  
            return 0;  
        }  
  
        // 初始化变量  
        double result = number[0];  
  
        // 循环相加  
        for (int i = 1; i < number.length; i++) {  
  
            result = result + number[i];  
  
        }  
  
        // 输出结果  
//        System.out.println(result);  
  
        // 返回结果  
        return result;  
    }  
  
    // 减法功能方法  
    public static double subtract(double... number) {  
  
        // 判断是否为空  
        if (number.length == 0) {  
  
            System.out.println("请重新输入:");  
  
            return 0;  
        }  
  
        // 初始化变量  
        double result = number[0];  
  
        for (int i = 1; i < number.length; i++) {  
  
            result = result - number[i];  
  
        }  
        // 输出结果  
//        System.out.println(result);  
  
        return result;  
  
    }  
  
    // 乘法功能方法  
    public static double multiply(double... number) {  
  
        // 判断是否为空  
        if (number.length == 0) {  
  
            System.out.println("请重新输入:");  
  
            return 0;  
        }  
  
        // 初始化变量  
        double result = number[0];  
  
        for (int i = 1; i < number.length; i++) {  
  
            if (number[i] == 0) {  
  
                System.out.println("0");  
  
                return 0;  
  
            } else {  
  
                result = result * number[i];  
  
            }  
        }  
  
        // 返回结果  
//        System.out.println(result);  
  
        return result;  
    }  
  
    // 除法功能方法  
    public static double divide(double... number) {  
  
        // 判断是否为空  
        if (number.length == 0) {  
  
            System.out.println("请重新输入:");  
  
            return 0;  
        }  
  
        // 初始化变量  
        double result = number[0];  
  
        for (int i = 1; i < number.length; i++) {  
  
            if (result == 0) {  
  
                System.out.println("0");  
  
                return 0;  
  
            } else if (number[i] == 0) {  
  
                System.out.println("0不能当除数!");  
  
                return Double.NaN;  
  
            } else {  
  
                result = result / number[i];  
  
            }  
        }  
  
        // 输出结果  
//        System.out.println(result);  
  
        // 返回结果  
        return result;  
    }  
}

image

posted @ 2026-06-01 19:10  花时玉  阅读(17)  评论(0)    收藏  举报