Java实现一个简单的计算器

当实现一个简单的计算器时,我们可以创建一个Java程序,该程序接受用户输入的两个数字和一个运算符,然后执行相应的数学运算并输出结果。下面是一个简单的Java代码示例,用于实现这样的计算器:

import java.util.Scanner;  public class SimpleCalculator {  public static void main(String[] args) {  Scanner scanner = new Scanner(System.in);  System.out.print("请输入第一个数字: ");  double num1 = scanner.nextDouble();  System.out.print("请输入运算符 (+, -, *, /): ");  String operator = scanner.next();  System.out.print("请输入第二个数字: ");  double num2 = scanner.nextDouble();  double result;  switch (operator) {  case "+":  result = num1 + num2;  break;  case "-":  result = num1 - num2;  break;  case "*":  result = num1 * num2;  break;  case "/":  // 检查除数为0的情况  if (num2 != 0) {  result = num1 / num2;  } else {  System.out.println("除数不能为0");  return;  }  break;  default:  System.out.println("无效的运算符");  return;  }  System.out.printf("%.2f %s %.2f = %.2f%n", num1, operator, num2, result);  scanner.close();  }  
}

在这个程序中,我们使用了Scanner类来获取用户输入。首先,我们要求用户输入两个数字和一个运算符。然后,我们使用switch语句来根据运算符执行不同的数学运算。如果运算符是除号(/),我们还需要检查除数是否为0,以避免除以零的错误。最后,我们打印出计算结果。

要运行此程序,请将其复制到Java开发环境中,并确保您已经正确配置了Java环境。然后,编译并运行程序,按照提示输入数字和运算符,程序将给出相应的计算结果。

如果我们想要将计算器的输出改为字符串形式,而不是直接打印到控制台,我们可以将结果存储在一个字符串变量中,并在需要的时候(比如打印到控制台或返回给调用者)使用该字符串。以下是一个修改后的代码示例:

import java.util.Scanner;  public class SimpleCalculator {  public static String calculate(double num1, String operator, double num2) {  double result;  switch (operator) {  case "+":  result = num1 + num2;  break;  case "-":  result = num1 - num2;  break;  case "*":  result = num1 * num2;  break;  case "/":  // 检查除数为0的情况  if (num2 == 0) {  return "除数不能为0";  }  result = num1 / num2;  break;  default:  return "无效的运算符";  }  // 将结果格式化为字符串  return String.format("%.2f %s %.2f = %.2f", num1, operator, num2, result);  }  public static void main(String[] args) {  Scanner scanner = new Scanner(System.in);  System.out.print("请输入第一个数字: ");  double num1 = scanner.nextDouble();  System.out.print("请输入运算符 (+, -, *, /): ");  String operator = scanner.next();  System.out.print("请输入第二个数字: ");  double num2 = scanner.nextDouble();  // 调用calculate方法获取字符串结果  String resultString = calculate(num1, operator, num2);  // 打印结果到控制台  System.out.println(resultString);  scanner.close();  }  
}

在这个修改后的代码中,我们添加了一个名为calculate的方法,它接受两个数字和一个运算符作为参数,并返回计算结果的字符串表示形式。main方法现在调用calculate方法,并将结果存储在一个字符串变量resultString中,然后将其打印到控制台。

注意,当除数为0时,calculate方法现在返回一个错误消息字符串,而不是直接打印到控制台。同样,如果运算符无效,它也会返回一个错误消息字符串。

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

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

相关文章

【15年成为通用MCU第一,STM32凭什么?】

微控制器(MCU)是这个快速变化世界的重要助推器和核心组成部分,也是整个数字世界应用最普遍的数字芯片之一。通用MCU市场竞争情况复杂且多样,开发者需要选择最适合的MCU产品完成创新设计。而MCU市场竞争发展的重点一定是以开发者为…

100个 Unity小游戏系列五 -Unity 抽奖游戏专题三老虎机游戏

一、演示效果 二、知识点讲解 2.1 布局 public void CreateItems(SlotsData[] slotsData){isInited false;slotsPrizeList new List<SlotsData>();for (int i 0; i < slotsData.Length; i){var item slotsData[i];slotsPrizeList.Add(item);}float bottomY -it…

学习sam的过程

一、抓包 我平时都是用花瓶去抓包的&#xff0c;配置也很简单。就是下载软件&#xff0c;然后一步步安装。下载地址&#xff1a;Download a Free Trial of Charles • Charles Web Debugging Proxy 。然后配置手机代理 对于那些走http协议的app是可以的&#xff0c;https的还是…

SAP锁机制(SAP Locks)经验小结

1. 数据一致性与锁 为什么要有锁机制&#xff1f;其背后的核心逻辑在于“保证数据的一致性”。 当数据被应用程序修改时&#xff0c;我们必须要保证修改后的数据具有一致性。在SAP系统中&#xff0c;将一致的数据状态从一个状态变动到另一个一致状态的时间跨度被称为LUW&…

应对意外断电:气膜建筑的安全防护与智能管理—轻空间

气膜建筑以其独特的结构和高效的建设方式&#xff0c;广泛应用于各类场馆、仓储设施和临时展馆。然而&#xff0c;当遇到意外断电导致气膜内部无法送风时&#xff0c;如何避免气膜倒塌&#xff0c;确保建筑安全呢&#xff1f; 断电应急响应 气膜建筑配备了先进的智能控制系统&a…

记录一次Redisson使用synchronized和分布式锁不生效的原因

最近在开发的过程中&#xff0c;遇到了一个并发场景&#xff0c;用户进行方案复制的时候&#xff0c;当快速点击两次操作的时候&#xff0c;出现了复制方案重名的情况&#xff0c;实际上是复制方案的方案名称&#xff0c;是由后端根据数据库已有的方案名称和当前要复制的方案名…

【退役之重学Java】总结

带着一把伤心的吉他&#xff0c;我背井离乡 你居然想要成为别人的老婆 只有代码 不伤人心 一、深入理解 JVM 底层原理 运行时数据区域 JVM 运行时数据区域&#xff0c;分为栈区、堆区、方法区、程序计数器、本地方法栈 栈区存放的是变量的最浅层的值&#xff0c;如果是基本数据…

git新电脑下载配置记录

1、官网下载 2、安装 3、配置 &#xff08;1&#xff09;先生成密钥 ssh-keygen -t rsa -C “XXXqq.com” &#xff08;2&#xff09;生成两个文件&#xff0c;复制.pub,在GitHub的setting里面设置ssh&#xff0c; &#xff08;3&#xff09;验证远程是否配置成功 ssh -T g…

Python轻量级的插件框架库之pluginbase使用详解

概要 在软件开发中,插件系统是一个常见的需求。插件系统允许开发者动态加载和卸载功能模块,从而提高应用程序的灵活性和可扩展性。Python的pluginbase库是一个轻量级的插件框架,旨在简化插件系统的构建过程。pluginbase库提供了一套简单易用的API,使开发者能够快速集成插件…

【408真题】2009-23

“接”是针对题目进行必要的分析&#xff0c;比较简略&#xff1b; “化”是对题目中所涉及到的知识点进行详细解释&#xff1b; “发”是对此题型的解题套路总结&#xff0c;并结合历年真题或者典型例题进行运用。 涉及到的知识全部来源于王道各科教材&#xff08;2025版&…

Windows电脑高颜值桌面便利贴,便签怎么设置

在这个看颜值的时代&#xff0c;我们不仅在衣着打扮上追求时尚与美观&#xff0c;就连电脑桌面也不愿放过。一张唯美的壁纸&#xff0c;几款别致的小工具&#xff0c;总能让我们的工作空间焕发出不一样的光彩。如果你也热衷于打造高颜值的电脑桌面&#xff0c;那么&#xff0c;…

探索智能零售的未来商机与运营策略

探索智能零售的未来商机与运营策略 在智能零售的广阔图景中&#xff0c;无人售货机加盟赫然矗立为一股不可小觑的力量&#xff0c;预示着零售业态未来的转型与机遇。其核心优势多维展开&#xff0c;具体阐述如下&#xff1a; 1. **全天候服务**&#xff1a;无人售货机的运行跨…

优思学院:什么是DMADV模式?和DMAIC有何区别?

在现代企业管理中&#xff0c;质量管理是一项至关重要的工作。六西格玛管理法作为一种高效的质量管理方法&#xff0c;已在全球范围内得到了广泛应用。它不仅在制造业中发挥了巨大的作用&#xff0c;在服务业和其他行业中也同样表现出了强大的生命力。六西格玛管理法主要有两种…

SQL 语言:触发器

文章目录 基本概述创建触发器更改和删除触发器总结 基本概述 存储过程&#xff0c;类似于高阶语言的函数或者方法&#xff0c;包含SQL语句序列&#xff0c;是可复用的语句&#xff0c;保存在数据库中&#xff0c;在服务器中执行。特点是复用&#xff0c;提高了效率&#xff0c…

B3956 [GESP202403 三级] 字母求和

[GESP202403 三级] 字母求和 题目描述 小杨同学发明了一种新型密码&#xff0c;对于每一个小写英文字母&#xff0c;该小写字母代表了一个正整数&#xff0c;即该字母在字母顺序中的位置&#xff0c;例如字母 a 代表了正整数 1 1 1&#xff0c;字母 b 代表了正整数 2 2 2&a…

【30天精通Prometheus:一站式监控实战指南】第10天:blackbox_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细

亲爱的读者们&#x1f44b;   欢迎加入【30天精通Prometheus】专栏&#xff01;&#x1f4da; 在这里&#xff0c;我们将探索Prometheus的强大功能&#xff0c;并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。&#x1f680;   Prometheus是云原生和DevOps的…

Java——执行流程

一、执行流程 1、示例 //第一个Java程序 public class Hello{public static void main(String[] args){System.out.println("Hello World!");} } 编译&#xff1a; 执行&#xff1a; 我们可以看到这里的是类名&#xff0c;而不是字节码文件名 Hello.class &#…

通过 coze 快速构建自己的智能体机器人

通过 coze 快速构建自己的智能体机器人 coze 的使用 一&#xff09;coze 是什么 「Coze 扣子」AI Bot 开发平台。任何用户都可以快速、低门槛地搭建自己的 Chatbot&#xff0c;且平台支持用户将其一键发布到飞书、微信公众号、豆包等渠道。 二&#xff09;coze 怎么注册 1. …

【网络层】ICMP 因特网控制协议

文章目录 ICMP 含义以及作用ICMP协议解析结合ICMP协议和ping常见问题 ICMP 含义以及作用 ICMP&#xff1a;Internet control massage protocol 因特网控制协议 Internet控制报文协议ICMP是网络层的一个重要协议。 ICMP协议用来在网络设备间传递各种差错和控制信息&#xff0c;…

js 不同源的情况下 iframe还可以通讯吗

是的。即使在不同源的情况下&#xff0c;iframe之间仍然可以通过postMessage API进行通信。postMessage方法允许来自不同源的脚本采用异步方式进行有限的通信&#xff0c;这对于实现跨域通信非常有用。 基本原理 发送消息&#xff1a;使用window.postMessage方法从一个窗口向另…