[ Java ] 实现两个数加减乘除的简易计算器

新手,不足之处望大佬们海涵
感谢( *ˊᵕˋ)✩︎‧₊

以下为代码:

package com.zhong.homework;import java.util.Scanner;public class Demo03 {public static void main(String[] args) {/*能对两个数字进行“加减乘除”运算的计算器:四个方法,加减乘除利用循环+Switch进行交互传递需要操作的两个数输出结果*/boolean flag = true;//循环,实现在键盘输入'#'前可以一直计算算式while(flag) {System.out.println("请输入需要进行计算的数学式子:");Scanner scanner = new Scanner(System.in);String str = scanner.next();//接收数学算式的字符串strDemo03 demo03 = new Demo03();//用来接收算式结果的变量double result1 = 0;double result2 = 0;double result3 = 0;double result4 = 0;//用switch选择需要调用的方法,并用变量接收再输出for (int i = 0; i < str.length(); i++) {if (str.charAt(i) >= '0' && str.charAt(i) <= '9') {} else {switch (str.charAt(i)) {case '+':result1 = demo03.add(str);//接收add()返回值,即算式结果System.out.printf("%s=%.3f\n", str, result1);//输出加法算式结果break;case '-':result2 = demo03.subtraction(str);//接收subtraction()返回值,即算式结果System.out.printf("%s=%.3f\n", str, result2);//输出减法算式结果break;case '*':result3 = demo03.multiplication(str);//接收multiplication()返回值,即算式结果System.out.printf("%s=%.3f\n", str, result3);//输出乘法算式结果break;case '/':result4 = demo03.division(str);//接收division()返回值,即算式结果System.out.printf("%s=%.3f\n", str, result4);//输出除法算式结果break;case '.':continue;default:System.out.println("Error!");}}}System.out.println("退出程序输入#, 继续请随便输入一个字符");String tempStr = scanner.next();if (tempStr.equals("#")) {flag = false;}}}//加public double add(String str){String numStr1 = "";String numStr2 = "";//需要计算的两个数字所用字符串,初始化for (int i = 0; i < str.length(); i++) {if(str.charAt(i) == '+'){//对numStr1进行赋值操作for(int j = 0; j < i; j++){numStr1 += str.charAt(j);}//对numStr2进行赋值操作for(int j = i+1; j < str.length(); j++){numStr2 += str.charAt(j);}}}//把字符串类型的数字字符转换为double类型的数据,并用num1, num2接收double num1 = Double.parseDouble(numStr1);double num2 = Double.parseDouble(numStr2);//返回算式结果return num1+num2;}//减public  double subtraction(String str){String numStr1 = "";String numStr2 = "";for (int i = 0; i < str.length(); i++) {if(str.charAt(i) == '-'){for(int j = 0; j < i; j++){numStr1 += str.charAt(j);}for(int j = i+1; j < str.length(); j++){numStr2 += str.charAt(j);}}}double num1 = Double.parseDouble(numStr1);double num2 = Double.parseDouble(numStr2);return num1-num2;}//乘public double multiplication(String str){String numStr1 = "";String numStr2 = "";//需要计算的两个数字所用字符串,初始化for (int i = 0; i < str.length(); i++) {if(str.charAt(i) == '*'){//对numStr1进行赋值操作for(int j = 0; j < i; j++){numStr1 += str.charAt(j);}//对numStr2进行赋值操作for(int j = i+1; j < str.length(); j++){numStr2 += str.charAt(j);}}}//把字符串类型的数字字符转换为double类型的数据,并用num1, num2接收double num1 = Double.parseDouble(numStr1);double num2 = Double.parseDouble(numStr2);//返回算式结果return num1*num2;}//除public double division(String str){String numStr1 = "";String numStr2 = "";//需要计算的两个数字所用字符串,初始化for (int i = 0; i < str.length(); i++) {if(str.charAt(i) == '/'){//对numStr1进行赋值操作for(int j = 0; j < i; j++){numStr1 += str.charAt(j);}//对numStr2进行赋值操作for(int j = i+1; j < str.length(); j++){numStr2 += str.charAt(j);}}}//把字符串类型的数字字符转换为double类型的数据,并用num1, num2接收double num1 = Double.parseDouble(numStr1);double num2 = Double.parseDouble(numStr2);//返回算式结果return num1/num2;}
}

[ Java ] 实现两个数加减乘除的简易计算器相关推荐

  1. 每日一练||用Java图形界面实现加减乘除功能的计算器

    效果展示 源代码 import javax.swing.*; public class TestDemo {public static void main(String[] args) {// 创建窗 ...

  2. Java方法:练习,控制台简易计算器

    可以更改计算个数的简易计算器 package com.zdz.method;import java.util.Scanner;public class Operator {public static ...

  3. Java 输入两个数并输出它们的和

    题目描述 输入两个整数,输出它们的和. 输入描述 在同一行上输入两个整数,中间用空格分隔 输出描述 两个整数的和,并输出换行 输入样例 3 -5 输出样例 -2 程序代码 import java.ut ...

  4. java 判断两个数是否异号

    java 整型int占4个字节32位,两个数异或后移动31位判断结果,如果是1则异号,如果是0则同号 1 public class ShowEnviromentViarible { 2 3 publi ...

  5. JAVA判断两个数是否亲和数_亲和数

    亲和数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

  6. java判断两个数互质_AcWing 458. 比例简化-java(无需判断互质)

    因为数据范围很小,这道题的基本思路就是枚举所有的A'和B',找出最小的那个. 枚举需要满足下面两个条件 1.A'和B'互质 2.A'/B'的比例大于等于原来的比例,并且尽可能接近. 其实这里无需判断A ...

  7. java求两个数相加代码

    假定目前Java环境已经构建完成,然后在编辑器中输入如下一段代码,编译运行,即可实现从控制台输入两个整数,并对其求和将结果输出到控制台. import java.util.*; class Hello ...

  8. java求两个数的平均值-这么简单我竟然不会?

    背景:结合上篇的java位运算,突发奇想,特此总结,如何正确的求2个数的平均值,通过本片文章也让你们认识到bug是如何深埋在你的编程中的. 备注:以int计算为例. 1  通用写法 public st ...

  9. 使用java交换两个数——CSDN博客

    /*** * @Title: test_exchange* @Description: 该方法的主要作用:交换两个数* @param 设定文件 * @return 返回类型:void * @throw ...

最新文章

  1. Android 自定义View —— Paint
  2. jquery .parents(), .parent() 和 closest()方法
  3. Python 技术篇-用PIL库修改图片透明度实例演示,改变png图片色道为RGBA、RGB
  4. shell 数学运算
  5. 技术面试中,遇到不会回答的问题怎么破?来,教你几招!
  6. 5.4 加权最小二乘法
  7. 打开应用蜂窝移动数据就关闭_基于移动应用行为数据的客户流失预测
  8. easy ui dialog 关闭之后的怪异问题
  9. python中使用正则模板匹配结果
  10. SVN遇到Can't convert string from 'UTF-8' to native encoding(转)
  11. 一个简单的iBatis入门例子
  12. 清算号和联行号有区别吗?区别是什么?
  13. FPGA的NIOS-II开发入门
  14. 阿里国际站装修尺寸是多少1920像素模板阿里巴巴全屏代码装修教程优化美化店铺工具
  15. ESP32 学习笔记(二十二)睡眠模式
  16. STM32的国产替代,盘点下我知道的国产MCU
  17. 如何使用 Backblaze 和 Cloudflare 搭建免费 CDN - 让白-piao进行到底
  18. R语言ggplot2可视化散点图(scatter plot)、使用scale_size函数自定义指定散点大小的度量、scale_fill_distiller函数自定义指定散点的颜色映射(填充色的度量)
  19. 软电话 开源的和免费的大全
  20. 超级记忆法(4)——第二小时

热门文章

  1. AI视觉传感器作用和应用介绍
  2. ISP AWB自动白平衡包含一段简单的色温估计进行白平衡调节的程序
  3. 轻松快速安装Kubernetes dashboard
  4. 关于分销体系是怎么理解的?
  5. @Value 读取yml 文件
  6. 七个实用的分布式开源框架
  7. 用selenium爬取拉勾网职位信息及常见问题处理
  8. Windowsnbsp;XP/Vista/Windows7常见蓝…
  9. 分布式学习笔记001
  10. 苹果电脑如何打印文件