Day44--练习--操作题(1)

Day44--练习--操作题(1)

题目:计算器程序

要求:
编写一个简单的计算器程序,该程序能够执行基本的算术运算,包括加法、减法、乘法和除法。程序应该从用户那里接收两个数字和一个运算符,然后输出计算结果。

输入:

  • 第一个数字(double类型)
  • 第二个数字(double类型)
  • 运算符(char类型,可以是'+'、'-'、'*'或'/')

输出:

  • 根据提供的运算符,输出两个数字的计算结果(double类型)

我写的代码:

package com.liu.exercise;

import java.util.Scanner;


public class Exercise {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入第一个数字:");
        double s = scanner.nextDouble();
        System.out.println("请输入第二个数字:");
        double v = scanner.nextDouble();
        System.out.println("请输入接下来的操作:1.加(+);2.减(-);3.乘(*);4.除(/)");
        int i = scanner.nextInt();
        switch(i){
            case 1:
                System.out.println(s+"+"+v+"="+(s+v));
                break;
            case 2:
                System.out.println(s+"-"+v+"="+(s-v));
                break;
            case 3:
                System.out.println(s+"*"+v+"="+(s*v));
                break;
            case 4:
                System.out.println(s+"/"+v+"="+(s/v));
                break;
            default:
                System.out.println("请输入正确的数字!!!!");
        }

    }


}

解析:

你的代码总体上是正确的,但有一些地方可以改进和优化。以下是一些建议和改进:

  1. 资源管理:在使用完 Scanner 对象后,应该关闭它以释放资源。
  2. 除零检查:在进行除法操作时,应该检查除数是否为零,以避免运行时错误。
  3. 代码风格:可以改进代码的可读性和一致性。

以下是改进后的代码:

package com.liu.exercise;

import java.util.Scanner;

public class Exercise {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        try {
            System.out.println("请输入第一个数字:");
            double num1 = scanner.nextDouble();
            
            System.out.println("请输入第二个数字:");
            double num2 = scanner.nextDouble();
            
            System.out.println("请输入接下来的操作:1.加(+);2.减(-);3.乘(*);4.除(/)");
            int operation = scanner.nextInt();
            
            switch (operation) {
                case 1:
                    System.out.println(num1 + "+" + num2 + "=" + (num1 + num2));
                    break;
                case 2:
                    System.out.println(num1 + "-" + num2 + "=" + (num1 - num2));
                    break;
                case 3:
                    System.out.println(num1 + "*" + num2 + "=" + (num1 * num2));
                    break;
                case 4:
                    if (num2 != 0) {
                        System.out.println(num1 + "/" + num2 + "=" + (num1 / num2));
                    } else {
                        System.out.println("错误:除数不能为零");
                    }
                    break;
                default:
                    System.out.println("请输入正确的数字!!!!");
            }
        } finally {
            scanner.close(); // 关闭Scanner对象
        }
    }
}

改进点解释:

  1. 资源管理:使用 try-finally 块来确保 Scanner 对象在使用完后被关闭。
  2. 除零检查:在进行除法操作时,增加了对除数是否为零的检查。
  3. 变量命名:将变量 sv 改为更具描述性的 num1num2,以提高代码的可读性。

这样,你的代码不仅更加健壮,而且更易于理解和维护。

posted @ 2024-12-10 15:15  1hahahahahahahaha  阅读(23)  评论(0)    收藏  举报