【Go每日一练】实现简单的控制台计算器

ops/2025/3/16 2:33:07/

👻创作者:丶重明
👻创作时间:2025年3月7日
👻擅长领域:运维

目录

  • 1.😶‍🌫️题目:简单的控制台计算器
  • 2.😶‍🌫️代码输出
  • 3.😶‍🌫️结果输出:
  • 4.😶‍🌫️代码解析:
  • 5.😶‍🌫️本章要点:
  • 6.😶‍🌫️内容扩展:

1.😶‍🌫️题目:简单的控制台计算器

使用Go语言实现一个简单的加、减、乘、除控制台计算器,支持基本的数学运算。

通过这个练习可以学习Go语言的一些基本语法,如switch逻辑判断,if逻辑判断等使用。

设计思路比较简单,主要分为以下几个步骤:

  • 提示用户输入两个数字
  • 提示用户输入运算符
  • 根据用户输入进行相应运算
  • 得出结果

2.😶‍🌫️代码输出

接下来,将使用Go语言进行编写代码,实现简单的计算器功能。

package mainimport "fmt"func main() {var num1, num2 float64var operator stringfmt.Println("请输入第一个数字:")fmt.Scanln(&num1)fmt.Println("请输入第二个数字:")fmt.Scanln(&num2)fmt.Println("请输入运算符(+ - * /):")fmt.Scanln(&operator)switch operator {case "+":fmt.Printf("结果为: %.2f\n", num1+num2)case "-":fmt.Printf("结果为: %.2f\n", num1-num2)case "*":fmt.Printf("结果为: %.2f\n", num1*num2)case "/":if num2 == 0 {fmt.Println("出错了~除数不能为0")} else {fmt.Printf("结果为: %.2f\n", num1/num2)}default:fmt.Println("出错了~请输入正确的运算符")}
}

3.😶‍🌫️结果输出:

保存代码,通过go run命令执行代码文件,如下所示:

> go run .\7.gotest.go
请输入第一个数字:
5.8
请输入第二个数字:
6.2
请输入运算符(+ - * /):
/
结果为: 0.94

4.😶‍🌫️代码解析:

  1. 导入fmt包进行输入输出操作。
  2. 使用var声明变量num1num2用于存储数字;声明变量operator用来存储操作符。
  3. 使用fmt.Scanln从控制台读取用户输入的数字和操作符。
  4. 使用switch语句根据用户输入的操作符执行相应的运算,如果输入的运算符不符合要求则提示错误。
  5. 在进行除法运算时,加入判断逻辑除数不能为0,如果为0则提示错误。

5.😶‍🌫️本章要点:

fmt.Scanln

作用是从标准输入读取一行数据,并尝试将其解析为合适的类型,与Scan的区别是遇到换行符时会停止读取。

switch 表达式 {
case1:// 当表达式的值等于值1时执行的代码
case2:// 当表达式的值等于值2时执行的代码
// 可以有更多的 case 分支
default:// 当表达式的值与所有 case 的值都不匹配时执行的代码
}

在表达式switch中,switch后面的表达式会被求值,然后依次与每个case后面的值进行比较。

如果匹配成功,则执行该 case 后面的代码块,并且在执行完后会自动跳出switch语句,不需要使用break语句(Go 语言的 switch 语句默认自带 break 效果)。

如果所有case都不匹配,则执行default分支(default 分支是可选的)。

if 条件表达式 {// 当条件表达式为 true 时执行的代码块
} else {// 当条件表达式为 false 时执行的代码块
}

if语句可以和else语句结合使用,当if条件表达式的值为false时,会执行else语句后面的代码块。

6.😶‍🌫️内容扩展:

这个简单计算器案例有很多扩展的地方,以下是一些可以考虑的扩展方向:

  • 支持更多运算 ,如幂运算(^)、平方根(sqrt)
  • 实现括号运算,有括号时候先算括号里的
  • 支持科学运算,比如三角函数、指数等

同系列:

上一篇:【Go每日一练】构建一个简单的用户信息管理系统


http://www.ppmy.cn/ops/166099.html

相关文章

Java高频面试之集合-10

hello啊,各位观众姥爷们!!!本baby今天来报道了!哈哈哈哈哈嗝🐶 面试官:详解红黑树?HashMap为什么不用二叉树/平衡树呢? 一、红黑树(Red-Black Tree&#xff…

258.反转字符串中的单词

方法一&#xff1a; public class Solution {public String reverseWords(String s) {if(s.length()1&&!s.equals(" ")){return s;}List<String> resnew ArrayList<>();int start0;for(int i1;i<s.length();i){if(s.charAt(i)! && s…

MySQL中的B+树索引经验总结

一、什么是B树 B树是一种二叉树&#xff0c;由二叉查找树&#xff0c;平衡二叉树&#xff0c;B树演化而来。 请看上图 B树的特点&#xff1a; 1&#xff09;非叶子节点不存放数据&#xff0c;只存放键值&#xff0c;数据都存放在叶子节点中。 2&#xff09;叶子节点都在同一…

奇墨科技FinOps云成本优化:精细化IT成本分摊重塑企业云财务管理

云时代下的IT成本困境&#xff1a;为什么需要精细化IT成本分摊&#xff1f; 根据Flexera《2023云状态报告》&#xff0c;82%的企业存在云资源浪费问题&#xff0c;平均超支比例达32%。与此同时&#xff0c;Gartner预测到2026年&#xff0c;75%的企业将因缺乏有效的成本治理机制…

解决Docker Desktop中ext4.vhdx文件过大的问题

ext4.vhdx是Docker Desktop在Windows系统上使用WSL2&#xff08;Windows Subsystem for Linux 2&#xff09;时&#xff0c;用于存储Linux文件系统的虚拟硬盘文件。 基本概念 VHDX格式&#xff1a;VHDX是微软推出的一种虚拟硬盘格式&#xff0c;具有更大的存储容量、更好的性能…

​2024华为OD机试真题-太阳能板最大面积(C++)-E卷B卷-100分

2024华为OD机试最新E卷题库-(C卷+D卷+E卷)-(JAVA、Python、C++) 目录 题目描述 输入描述 输出描述 用例1 解题思路 考点 代码 c++ 题目描述 给航天器一侧加装长方形或正方形的太阳能板(图中的红色斜线区域),需要先安装两个支柱(图中的黑色竖条), 再在支柱的中…

企业数字化转型数据治理解决方案(119页PPT)(文末有下载方式)

资料解读&#xff1a;企业数字化转型数据治理解决方案 详细资料请看本解读文章的最后内容。 在当今数字化时代&#xff0c;数据已经成为企业最宝贵的资产之一。然而&#xff0c;随着数据量的激增和数据来源的多样化&#xff0c;如何有效管理和利用这些数据成为了企业面临的一…

交通工具驱动电机技术解析:电瓶车、汽车、地铁与高铁的电机对比

点击下面图片&#xff0c;为您提供全新的嵌入式学习路线 文章目录 [TOC](文章目录)一、引言二、电瓶车&#xff1a;直流无刷电机&#xff08;BLDC&#xff09;三、电动汽车&#xff1a;永磁同步电机&#xff08;PMSM&#xff09;与感应电机1. 永磁同步电机&#xff08;主流选…