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

embedded/2025/3/13 17:12:48/

👻创作者:丶重明
👻创作时间: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/embedded/172306.html

相关文章

upload-labs-master通关攻略(13~16)

Pass-13 建立2.php 将2.php改为2.jpg 上传后得到 打开include.php 使用include.php?fileupload/2920250311193154.gif这样的格式就可运行 Pass-13~15完全一样 Pass-16 打开准备好的.jpg 上传后得到 .jpg的内容 打开include.php 使用include.php?filePass-16/upload/31428.…

【实战ES】实战 Elasticsearch:快速上手与深度实践-6.1.2TLS加密通信配置

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 6.1.2 TLS加密通信配置深度实战指南1. TLS核心配置原理1.1 加密层对比矩阵1.2 证书管理方案对比 2. 全链路配置实战2.1 证书生成模板2.2 集群加密配置 3. 高级安全策略3.1 加…

第十章:go 函数的指针

Go语言中的指针不能进行偏移和运算,因此Go语言中的指针操作非常简单,我们只需要记住两个符号:&(取地址)和*(根据地址取值)。 每个变量在运行时都拥有一个地址,这个地址代表变量在…

LeetCode27移除元素

【快慢指针法】 考虑:谁设循环,边界是什么,步长是什么,移动条件是什么 :谁走得快谁设循环---->快指针,边界是数组长度(不溢出),步长为1,移动条件以数组[0,…

加油站小程序实战教程10用户登录授权

目录 引言1 搭建布局2 创建变量3 设置条件展示4 创建登录页面5 配置跳转总结 引言 在《加油站小程序实战教程09显示站点信息》中,我们介绍了如何和地图联动显示站点信息的内容。显示完基本信息后,就进入到我们的主业务中,进行加油操作了。在…

c#25/3/11 周二

18.传值/输出/引用/数组/具名/可选参数,扩展方法_哔哩哔哩_bilibili 未完。。37

Windows10下docker desktop命令行操作指南(大部分也适用于Linux)

Windows系统最大的特点就是可视化操作,点点鼠标就能操作软件。但是在特殊的情况下,比如docker desktop图标点了之后没反应,但是看后台程序,它又已经运行了,这时候就要使用命令行来操作了。 针对这次情况,所…

21.Linux 线程库的使用与封装

在linux内核中并没有线程的概念,只有轻量级进程LWP的概念,linux下的线程都是是由LWP进行模拟实现的。因此linux操作系统中不会提供线程的相关接口,只会提供轻量级线程的接口(如vfork,clone等)。但是在我们的…