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

public class HomeworkDemo {
    
    
    public static void main(String[] args) {
    
    
        Scanner scanner = new Scanner(System.in);


        double result = 0;
        while (scanner.hasNextDouble()) {
    
    
            double i = scanner.nextDouble();
            String str = scanner.next();
            double j = scanner.nextDouble();

            switch (str) {
    
    
                case "+":

                    result = add(i, j);

                    System.out.println(result);
                    break;
                case "-":

                    result = minus(i, j);

                    System.out.println(result);
                    break;
                case "*":

                    result = multiply(i, j);

                    System.out.println(result);
                    break;
                case "/":if(j==0){
    
    
                    System.out.println("除数不能为零");
                    break;
                }else

                    result = divide(i, j);

                    System.out.println(result);
                    break;
            }if (str.equals("quit")){
    
    
                System.out.println("退出计算器");
                break;
            }


        }scanner.close();
    }

    //加
    public static double add ( double a , double b){
    
    
        return a + b;
    }//减
    public static double minus ( double a , double b){
    
    
        return a - b;
    }//乘
    public static double multiply ( double a , double b){
    
    
        return a * b;
    }//除
    public static double divide ( double a , double b){
    
    
        return a / b;
    }


}

遇到的问题:1. 把scanner.hasNext作为while的布尔表达式,导致输入新的一组待运算数据时,无法给第一个数赋值,而是直接跳到scanner.hasNext的判定。所以把while的布尔表达式更改为scanner.hasNextDouble
2. 除数为零时,不仅输出“除数不能为零”,还输出了一开始给以result的赋值0,添加break;后解决问题。
3. 使用分步解决的思想,能够做出一个做加法运算的计算器,也能做出能够四则运算的计算器。

猜你喜欢

转载自blog.csdn.net/qq_43021902/article/details/113822261