前言


  之前在学习完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计算器(简单版)的更多相关文章

  1. Java实现简单版SVM

    Java实现简单版SVM 近期的图像分类工作要用到latent svm,为了更加深入了解svm,自己动手实现一个简单版的.         之所以说是简单版,由于没实用到拉格朗日,对偶,核函数等等.而 ...

  2. 红警大战JAVA简单版

    代码结构: 相关源码: 武器类: 属性:武器,攻击力,子弹数量. 方法:给属性赋值(set属性()方法) 获取属性值(get属性()方法) package 红警大战简单版; public class ...

  3. PAT(B) 1089 狼人杀-简单版(Java)逻辑推理

    题目链接:1089 狼人杀-简单版 (20 point(s)) 题目描述 以下文字摘自<灵机一动·好玩的数学>:"狼人杀"游戏分为狼人.好人两大阵营.在一局" ...

  4. 《仙剑奇侠传柔情版》Java的简单实现(二)

    基于<仙剑奇侠传柔情版>Java的简单实现(二) 2018-12-02 by Kris 需要上次的GameFrame.class中窗口框架承载:https://www.cnblogs.co ...

  5. 基于《仙剑奇侠传柔情版》利用Java的简单实现(一)

    基于<仙剑奇侠传柔情版>利用Java的简单实现(一) 2018-12-01 23:55:36   by Louis  一,新建一个类GameFrame.class,具体代码如下: pack ...

  6. JavaMail简单版实验测试

    前言: 最近由于实现web商城的自动发送邮件功能的需求,故涉猎的邮箱协议的内部原理.现将简单版的Java Mail实例做个代码展示,并附上其中可能出现的bug贴出,方便感兴趣的读者进行测试! 1.载入 ...

  7. 工厂方法模式(Java与Kotlin版)

    前文推送 设计模式 简单工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操作 Kotlin入门第三课:数据类型 初次 ...

  8. 抽象工厂模式(Java与Kotlin版)

    前文推送 设计模式 简单工厂模式(Java与Kotlin版) 工厂方法模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操 ...

  9. 建造者模式(Java与Kotlin版)

    前文推送 设计模式 简单工厂模式(Java与Kotlin版) 工厂方法模式(Java与Kotlin版) 抽象工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比J ...

  10. 《Effective Java中文版第二版》读书笔记

    说明 这里是阅读<Effective Java中文版第二版>的读书笔记,这里会记录一些个人感觉稍微有些重要的内容,方便以后查阅,可能会因为个人实力原因导致理解有误,若有发现欢迎指出.一些个 ...

随机推荐

  1. UNCTF2020 pwn题目

    YLBNB 用pwntools直接连接,然后接受就行. 1 from pwn import * 2 3 p = remote('45.158.33.12',8000) 4 context.log_le ...

  2. [BUUCTF]PWN——bjdctf_2020_router

    bjdctf_2020_router 附件 步骤: 例行检查,64位程序,开启了NX保护 本地试运行一下程序,看看大概的情况 会让我们选择,选择4.root,没什么用,但是注意了,这边选1会执行pin ...

  3. 任务日历关联(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 有时候吧,一件大事是由N件小事组成的,而这N件小事当中,不是每件事都可以在周末停下来的,当然也不是所有的事都必须在周末完成 ...

  4. Python变量的作用域在编译过程中确定

    为了节省读友的时间,先上结论(对于过程和细节感兴趣的读友可以继续往下阅读,一探究竟): [结论] 1)Python并不是传统意义上的逐行解释型的脚本语言 2)Python变量的作用域在编译过程就已经确 ...

  5. M-SOLUTIONS Programming Contest 2020 题解

    M-SOLUTIONS Programming Contest 2020 题解 目录 M-SOLUTIONS Programming Contest 2020 题解 A - Kyu in AtCode ...

  6. Django的Form表单验证

    Form(from django import forms) 简短理解:后端提供了一个类:from django import forms,继承此类定义子类.子类中定义和form表单中提交到name名 ...

  7. 线程 TLS

    TLS为什么产生呢?是软件开发中的什么问题呢?    TLS 产生背景进程中的全局变量与函数内定义的静态(static)变量,是各个线程都可以访问的共享变量.在一个线程修改的内存内容,对所有线程都生效 ...

  8. JSR310-LocalDateTime序列化 & 反序列化

    问题 springboot 版本:spring-boot 2.3.12 今天在开发一个redis 热key服务端的过程中,碰到2个问题: jdk8的LocalDateTime,LocalDate,Lo ...

  9. Clusternet 成为首批通过工信部开源成熟度评估项目!!!

    Clusternet 作为首批项目参与了<信息技术 开源 开源项目评估模型参考架构>测评,并成为通过评估的四个项目之一.<信息技术 开源 开源项目评估模型参考架构>由国防科技大 ...

  10. netty系列之:小白福利!手把手教你做一个简单的代理服务器

    目录 简介 代理和反向代理 netty实现代理的原理 实战 总结 简介 爱因斯坦说过:所有的伟大,都产生于简单的细节中.netty为我们提供了如此强大的eventloop.channel通过对这些简单 ...