用 Java 实现计算器功能

news2025/1/15 16:42:30

练习一

1.设计一个类模拟一个计算器

达到什么需求?加减乘除 需要设计一个方法一个计算方法

控制台输出

首先请输入第一个数

例如数字 1

请输入符号

例如+

请输入第二个数

例如 2

第二次 数字 3

请输入符号

-

请输入第二个数

2

结果 1

程序解析:

使用 Scanner 进行导包,抓取用户数据,进行强制转换,转换成 float 类型,进行计算创建一个方法,使用这个方法进行工作处理数据,再创建一个流程方法,使用 equals 判断比较数据,使代码更严谨,使用 break;和 continue;增加程序的复用性,使程序更加的灵活。使用 Switch 语句判断符号,进行传参计算,使用 while(){}语句增加一个死循环,使程序更复用,不浪费数据,增加一些严禁判断,让程序更完美一点。

代码如下:

    import java.util.Scanner;

    public class Temp {
        public float add(float a,float b){
            return a+b;
        }
        public float substact(float a,float b){
            return a-b;
        }
        public float multiply(float a,float b){
            return a*b;
        }
        public float divide(float a,float b){
            return a/b;
        }
        //设计一个方法  控制计算器计算的流程
        public void Do() {
            Scanner input = new Scanner(System.in);
            System.out.println("请输入第一个数字");
            String one = input.nextLine();
            float a = Float.parseFloat(one);
            while (true) {
                System.out.println("请输入符号");
                String symbol = input.nextLine();
                if (symbol.equals("=")){
                    System.out.println("我不玩啦,执行完毕");
                    break;
                }
    if (!(symbol.equals("+")||symbol.equals("-")||symbol.equals("*")||symbol.equals("/"))){
                    System.out.println("输入有误,符号只能是“+、-、*、/”");
                    continue;
                }
                System.out.println("请输入第二个数字");
                String tow = input.nextLine();
                float b = Float.parseFloat(tow);
                switch (symbol) {
                    case "+":
                        a = this.add(a, b);
                        break;
                    case "-":
                        a = this.substact(a, b);
                        break;
                    case "*":
                        a = this.multiply(a, b);
                        break;
                    case "/":
                        a = this.divide(a, b);
                        break;
                }
                System.out.println(a);
            }
        }
      }

总结:

截止到现在,这个程序已经使用了我们所学的大部分知识,如果你能把这个计算机模拟原理弄明白,那么就说明你对前面的知识已经掌握啦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/178647.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

27. 作用域

1. 定义 作用域就是一个 python 程序可以直接访问命名空间的正文区域。 在一个 python 程序中,直接访问一个变量,会从内到外依次访问所有的作用域直到找到,否则会报未定义的错误。 python 中,程序的变量并不是在哪个位置都可以访…

【Hadoop】MapReduce原理剖析(Map,Shuffle,Reduce三阶段)

文章目录1. Map阶段1.1 把输入文件(夹)划分为很多InputSplit(Split)1.2 分配并执行map作业2. Shuffle阶段2.1 Partition(分区)2.2 Sort(排序)2.3 Group(分组)2.4 Combiner(规约)2.5 序列化并写入Linux磁盘内存2.6 反序列化读取数据到不同的reduce节点2.7 Reduce端数据进行合并、…

【数据库概论】第五章 数据库完整性

第五章 数据库完整性 目录第五章 数据库完整性5.1 实体完整性5.2 参照实体性5.3 用户定义的完整性1.属性上的约束条件2.元组上的约束条件5.4 完整性约束命名子句5.5 域中的完整性限制5.6 断言5.7 触发器(Trigger)一、定义触发器二、激活触发器三、删除触发器数据库的完整性指的…

好客租房-13.WebMagic

13. 项目接入ES编写爬虫抓取房源数据开发搜索房源接口服务整合前端开发实现搜索功能优化搜索功能增加高亮和分页功能热词推荐功能实现拼音分词13.1 制作假数据13.1.1 WebMagic抓取数据为了丰富我们的房源数据,所以我们采用WebMagic来抓取一些数据,目标网…

还在纠结选择用什么浏览器?手机端用国产浏览器也很香

一说到受欢迎的电脑浏览器,大家肯定不约而同地说谷歌浏览器。微软edge浏览器能够同步书签、插件也非常多,因为这些优势深受国人的喜爱。有人纠结在国内选择谷歌好,还是edge浏览器好呢?可能有的人哪个也不选,反而在电脑…

Docker 解决 `denied: requested access to the resource is denied`

背景 由于不可描述的原因,相对于以前,最近在更加频繁的迁移服务器,简单的 Shell 脚本已经不能满足需求了,于是将所有的项目 Docker 化。 部分不含敏感配置的项目准备放到 DockerHub 上面,但是在 docker push 的时候报…

利用 Algolia 为静态博客搭建实现内容搜索

现在静态博客的标配之一就是博客搜索🔍,我也是通过搭建博客发现了它,这篇主要记录一下怎么使用 algolia 完成博客搜索,自己的博客搭建使用的是 docusaurus 。 注册账号 首先需要去 algolia 官网注册自己的账号,可以直…

Java线程池(超详细)

1、基本概念 Java线程需要经过线程的创建,调用和销毁整个过程,频繁的创建和销毁会大大影响性能,所以引入的线程池: 好处: 提升性能:线程池能独立负责线程的创建、维护和分配线程管理:每个Java…

k8s安装kuboard面板

前面介绍了k8s的dashboard面板,这里介绍国人开发的kuboard面板,相较于dashboard面板,kuboard面板对很多运维调试功能做了很多增强。官方文档:https://www.kuboard.cn/install/v3/install.html#kuboard-v3-x-%E7%89%88%E6%9C%AC%E8…

实现一个TCP客户端——服务端协议

目录 TCP客户端常见的API: ServerSocket: Socket: TCP服务端(单线程版本) 属性构造方法: 启动服务端的start()方法 步骤一:接收客户端发送的socket 步骤二: 调用processConnection方法来处理客户端发送的连接 ①通过参数传入的…

影像组学|特征定义以及提取

一、 影像组学特征分类 1.1 影像组学特征分类 1.1.1 一阶统计特征 一阶统计特征,反应所测体素的对称性、均匀性以及局部强度分布变化。包括中值,平均值,最小值,最大值,标准差,偏度,峰度等。 …

【Linux】六、Linux 基础IO(三)|文件系统|软硬链接|文件的三个时间

目录 八、文件系统 8.1 磁盘 8.1.1 磁盘的物理结构 8.1.2 磁盘的存储结构 8.1.3 磁盘的逻辑结构 8.2 inode 九、软硬链接 9.1 软链接 9.2 硬链接 9.3 当前路径(.)和上级路径(..) 十、文件的三个时间 八、文件系统 上面的内容谈论的都是一个被打开文件,那…

如何将两个录音合成一个?这篇文章告诉你

现如今,很多小伙伴都加入到短视频行业当中。而短视频的制作往往需要将多段音频进行一个合并。那么问题来了,当你想多个音频进行合并在一起的时候,你是怎么做的呢?其实很简单,我们只需要借助市面上的一些合并软件就好了…

初始网络

文章目录初始网络局域网 / 广域网IP地址 和 端口号认识协议协议分层初始网络 这里可以先自行在网上了解一下网络的发展史 也就是互联网是怎么来的. 局域网 / 广域网 关于网络的发展史 , 会涉及到两个非常重要的术语 ,也就是 局域网,和广域网 。 局域网 &…

JavaEE多线程-阻塞队列

目录一、认识阻塞队列1.1 什么是阻塞队列?1.2 生产者消费者模型1.3 标准库中的阻塞队列类二、循环队列实现简单阻塞队列2.1 实现循环队列2.2 阻塞队列实现一、认识阻塞队列 1.1 什么是阻塞队列? 阻塞队列:从名字可以看出,他也是…

简明Java讲义 2:数据类型和运算符

目录 1、安装IDE编辑器 2、关键字和保留字 3、标识符 4、分隔符 5、数据类型 6、基本类型的数据类型转换 7、表达式类型的自动提升 8、变量 9、运算符 10、运算符的优先级 1、安装IDE编辑器 在开始内容之前,先下载IDE,可以是Eclipse或STS&…

Python函数(函数定义、函数调用)用法详解

Python 中函数的应用非常广泛,前面章节中我们已经接触过多个函数,比如 input() 、print()、range()、len() 函数等等,这些都是 Python 的内置函数,可以直接使用。除了可以直接使用的内置函数外,Python 还支持自定义函数…

LeetCode刷题模版:201 - 210

目录 简介201. 数字范围按位与202. 快乐数203. 移除链表元素204. 计数质数205. 同构字符串206. 反转链表207. 课程表【未实现】208. 实现 Trie (前缀树)209. 长度最小的子数组210. 课程表 II【未实现】结语简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您…

LeetCode[1319]连通网络的操作次数

难度:中等题目:用以太网线缆将 n台计算机连接成一个网络,计算机的编号从 0到 n-1。线缆用 connections表示,其中 connections[i] [a, b]连接了计算机 a和 b。网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其…

(十六)异步编程

CompletableFuture在Java8中推出,Java8中的异步编程就是依靠此类。几种任务接口四种任务无参数有一个参数有两个参数无返回值RunnableConsumerBiConsumer有返回值SupplierFunctionBiFunctionCompletionStage接口这个类中定义的许多能够链式调用的方法和组合方法时是…