首页 > 其他分享 >Day44--练习--操作题(1)

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

时间:2024-12-10 15:22:22浏览次数:3  
标签:num1 num2 -- 操作题 System Scanner println Day44 out

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,以提高代码的可读性。

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

标签:num1,num2,--,操作题,System,Scanner,println,Day44,out
From: https://www.cnblogs.com/xiaokunzhong/p/18597439

相关文章

  • nacos灰度发布
    灰度发布的概念灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/Btesting,即让一部分用户继续用产品特性A,一部分用户开始用产品新特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,直到把所有用户都迁移到B上面来灰度发布可以保证整体系......
  • 一键排监考表!我的任务丸橙辣!
    要求1、可变动的:监考总人数、每人监考次数、科目、考场;2、不可变的:每场2个人监考、每人能监考≤最大次数、每人每科目只有一场;3、必须有的:生成一张表显示监考安排结果、生成一张表统计每位老师的每一科目监考情况和总数);4、其他要求:尽量简化操作、尽量让每次使用需要的改动简......
  • ESP32-CAM 上传图像数据到网络
    此篇文章在2022年8月29日被记录ESP32-CAM上传图像数据到Python上位机预防踩坑放在前面:目前安信可官方版的CAM模块已经停售,库存货比较贵,市面上的都是仿制的,质量良莠不齐,给开发带来了很多困扰,经过实际测试,发现山寨货主要有以下几个坑:1、发热严重,不加散热片长时间运行几乎到了烫......
  • go json
    在Go语言中,当爬虫返回JSON数据时,可以通过encoding/json包解析JSON数据并提取其中的值。以下是两种常见方法来解析JSON数据并获取特定字段(如code)。示例JSON数据假设你爬取到的JSON数据如下:json复制代码{"code":200,"message":"成功","data":{......
  • H5流媒体播放器EasyPlayer.js无插件H5播放器如何在iOS上如何实现低延时直播?
    随着流媒体技术的迅速发展,H5流媒体播放器已成为现代网络视频播放的重要工具。其中,EasyPlayer.js播放器作为一款功能强大的H5播放器,凭借其全面的协议支持、多种解码方式以及跨平台兼容性,赢得了广泛的关注和应用。那么要在iOS上实现低延时直播,EasyPlayer.js视频流媒体播放器提供了......
  • 在冬天使用4G无线太阳能供电视频监控系统,应注意哪些方面?
    随着冬季的到来,4G无线太阳能供电系统面临着低温和日照时间缩短的双重挑战。在这个季节,太阳能电池板的效率可能会因为积雪覆盖和光线角度的变化而降低,同时,系统的电池储能和逆变器等组件也需要适应极端的温度条件。因此,设计和维护一个在冬季也能稳定运行的4G无线太阳能供电系统,需要......
  • Linux压缩&解压缩命令合集
    01-.tar格式解包:[*******]$tarxvfFileName.tar打包:[*******]$tarcvfFileName.tarDirName(注:tar是打包,不是压缩!)02-.gz格式解压1:[*******]$gunzipFileName.gz解压2:[*******]$gzip-dFileName.gz压缩:[*******]$gzipFileName03-.tar.gz格式解压:[*******]$tarzxvfFileName......
  • 达梦sql优化之执行计划
    执行计划是什么呢?比如你执行一条sql语句,查询优化器会为这条sql语句设计执行方式,交给执行器去执行,查询优化器设计的执行方式就是执行计划。EXPLAIN可以打印出语句的执行计划。那么,执行计划主要是由什么组成的呢?答案是操作符(个人理解)。执行计划是由各类操作符组成的一颗树,从内......
  • 部署达梦8读写分离集群
    一、原理读写分离集群其实是主备集群的升级版本,在双机热备的基础上把用户写和读的会话事务分别放在主库和备库上执行。写事务会被分发到主库上执行,读事务则部分分发到备库上执行,分发比例在dm_svc.conf中控制,如:RW_PERCENT=25,指的是25%的读分发到主库。由接口负责读写事务的分发......
  • 11/19讲座1
    主题:数字时代,老师做好准备了吗?ai学伴:历史人物模型、心理疗愈大模型提问:跨媒体➕生成新内容(可以在面试时使用)比如古诗教学,学生不理解诗句意思,让学生每个人自行提问大模型生成图片,然后把所有学生提问的图片汇总展示在大屏幕,在提问这些图片的共同点和学生感受▷现在很多的ai融入......