java计算器(简单版)
前言
之前在学习完Java的方法后,我发现自己可以开始写计算器这个“经典”的项目了,于是我花了一点时间写下了这个计算器的程序,也写下了这篇文章。
在这里,我需要说明一下,这个程序只是我自己花了很少时间去写下来的代码,具体一点的时间是不到一个小时,更具体的时间不能透露更多了(doge),可能源码不是很好,仅供参考。好了,话不多说,我们开始讲解吧!
思路
我的思路很简单,就是在运行界面能够实现一些基础的而且是必要的用户交互,而且我们也要满足项目的具体要求,即:
|
写一个计算器,要求实现加减乘除功能,并且能够循环接受新的数据,并通过用户交互实现
|
于是我就作了一个简单的设计思路(可以理解为程序流程图):

源码
根据上面的简单的设计思路,我写下了这个程序源码:
1 import java.util.Scanner; //题目有输入,所以要引入输入
2
3 public class Calculator {
4 // 计算器
5 public static void main(String[] args) {
6 Scanner scanner = new Scanner(System.in);
7 while (true){ //循环实现循环接受新的数据
8 System.out.println("请输入第一个数:");
9 double a = scanner.nextDouble();
10 System.out.println("请输入第二个数:");
11 double b = scanner.nextDouble(); //使用两个变量记录用户输入的两个数
12 menu(a,b); //进入menu方法进行计算
13 exit(); //判断用户是否继续传入新的数据进行新的计算
14 int Select2 = scanner.nextInt();
15 switch (Select2){
16 case 1:
17 System.out.println("正在加载...");
18 break;
19 case 2:
20 System.out.println("谢谢您的使用,再见!");
21 scanner.close(); //关闭输入
22 return;
23 default:
24 System.out.println("输入序号非法,程序即将结束!");
25 scanner.close();return;
26 }
27 }
28 }
29
30 public static void exit(){ //输出交互相关文字
31 System.out.println("***您需要继续计算吗?***");
32 System.out.println("***1.需要,请继续******");
33 System.out.println("***2.不需要,退出程序***");
34 System.out.println("*请输入对应序号进行选择:*");
35 }
36
37 public static double menu(double a,double b){
38 Scanner scanner = new Scanner(System.in);
39 System.out.println("==========MENU=========="); //输出交互相关文字
40 System.out.println("=======1.计算加法=========");
41 System.out.println("=======2.计算减法=========");
42 System.out.println("=======3.计算乘法=========");
43 System.out.println("=======4.计算除法=========");
44 System.out.println("请输入菜单对应序号进入对应功能:");
45 int Select1 = scanner.nextInt();
46 switch (Select1){ //判断用户交互内容,并执行
47 case 1:
48 jia(a,b);
49 break;
50 case 2:
51 jian(a,b);
52 break;
53 case 3:
54 cheng(a,b);
55 break;
56 case 4:
57 chu(a,b);
58 break;
59 default:
60 System.out.println("输入序号有误,请重新输入!"); //输入不相关字符,让用户重新输入
61 return menu(a,b);
62 }
63 return 0;
64 }
65
66 public static void jia(double a,double b){ //加法方法
67 System.out.println("计算结果为:"+(a+b));
68 }
69
70 public static void jian(double a,double b){ //减法方法
71 System.out.println("计算结果为:"+(a-b));
72 }
73
74 public static void cheng(double a,double b){ //乘法方法
75 System.out.println("计算结果为:"+(a*b));
76 }
77
78 public static void chu(double a,double b){ //除法方法
79 System.out.println("计算结果为:"+(a/b));
80 }
81 }
最后,十分感谢您的阅读,如果您觉得有用,欢迎您关注幽离,幽离后续会更新更多优质内容!
java计算器(简单版)的更多相关文章
- Java实现简单版SVM
Java实现简单版SVM 近期的图像分类工作要用到latent svm,为了更加深入了解svm,自己动手实现一个简单版的. 之所以说是简单版,由于没实用到拉格朗日,对偶,核函数等等.而 ...
- 红警大战JAVA简单版
代码结构: 相关源码: 武器类: 属性:武器,攻击力,子弹数量. 方法:给属性赋值(set属性()方法) 获取属性值(get属性()方法) package 红警大战简单版; public class ...
- PAT(B) 1089 狼人杀-简单版(Java)逻辑推理
题目链接:1089 狼人杀-简单版 (20 point(s)) 题目描述 以下文字摘自<灵机一动·好玩的数学>:"狼人杀"游戏分为狼人.好人两大阵营.在一局" ...
- 《仙剑奇侠传柔情版》Java的简单实现(二)
基于<仙剑奇侠传柔情版>Java的简单实现(二) 2018-12-02 by Kris 需要上次的GameFrame.class中窗口框架承载:https://www.cnblogs.co ...
- 基于《仙剑奇侠传柔情版》利用Java的简单实现(一)
基于<仙剑奇侠传柔情版>利用Java的简单实现(一) 2018-12-01 23:55:36 by Louis 一,新建一个类GameFrame.class,具体代码如下: pack ...
- JavaMail简单版实验测试
前言: 最近由于实现web商城的自动发送邮件功能的需求,故涉猎的邮箱协议的内部原理.现将简单版的Java Mail实例做个代码展示,并附上其中可能出现的bug贴出,方便感兴趣的读者进行测试! 1.载入 ...
- 工厂方法模式(Java与Kotlin版)
前文推送 设计模式 简单工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操作 Kotlin入门第三课:数据类型 初次 ...
- 抽象工厂模式(Java与Kotlin版)
前文推送 设计模式 简单工厂模式(Java与Kotlin版) 工厂方法模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操 ...
- 建造者模式(Java与Kotlin版)
前文推送 设计模式 简单工厂模式(Java与Kotlin版) 工厂方法模式(Java与Kotlin版) 抽象工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比J ...
- 《Effective Java中文版第二版》读书笔记
说明 这里是阅读<Effective Java中文版第二版>的读书笔记,这里会记录一些个人感觉稍微有些重要的内容,方便以后查阅,可能会因为个人实力原因导致理解有误,若有发现欢迎指出.一些个 ...
随机推荐
- CF1455A Strange Functions 题解
Content 定义一个函数 \(f(x)\) 为 \(x\) 翻转并去掉前导零之后的数,现在有 \(t\) 组询问,每组询问给定一个整数 \(n\),请求出对于所有的 \(1\leqslant x\ ...
- ELK部署笔记
ELK安装准备工作 准备3台机器,这样才能完成分布式集群的实验,当然能有更多机器更好: 192.168.0.46 192.168.0.150 192.168.0.76 角色划分: 3台机器全部安装jd ...
- HTTPS握手-混合加解密过程
SSL协议通信过程 (1) 浏览器发送一个连接请求给服务器;服务器将自己的证书(包含服务器公钥S_PuKey).对称加密算法种类及其他相关信息返回客户端; (2) 客户端浏览器检查服务器传送到CA证书 ...
- 聊一聊Yarp结合Nacos完成服务发现
背景 Yarp 这个反向代理出来后,相信还是有不少人在关注的. 在 Yarp 中,反向代理的配置默认也是基于配置文件的,也有不少大佬已经把这个配置做成了数据库配置+可视化界面. 仔细想了想,做成数据库 ...
- 【LeetCode】1461. 检查一个字符串是否包含所有长度为 K 的二进制子串 Check If a String Contains All Binary Codes of Size K
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 统计长度为 K 的子串个数 日期 题目地址:https ...
- The Best Path
The Best Path Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tot ...
- golang切片的一些自问自答
你好,我是轩脉刃.这篇是关于go切片的一些问题和回答. go的切片基本上是代码中使用最多的一种数据结构了,使用这种数据结构有哪些要注意的点,这个是非常必要了解的东西.基本上,以前写的一篇博客 http ...
- RocketMQ 消息丢失场景分析及如何解决
生产者产生消息发送给RocketMQ RocketMQ接收到了消息之后,必然需要存到磁盘中,否则断电或宕机之后会造成数据的丢失 消费者从RocketMQ中获取消息消费,消费成功之后,整个流程结束 1. ...
- HashMap及LinkedHashMap
HashMap是Map族中最为常用的一种,也是Java Collection Framework的重要成员.HashMap和双向链表合二为一即是LinkedHashMap.所谓LinkedHashMa ...
- rabbitmq-安装部署及基础操作
rabbitmq 官网: https://www.rabbitmq.com/ yum 安装 rabbitmq # centos7 # In /etc/yum.repos.d/rabbitmq.repo ...