Go语言实战案例-简易计算器(加减乘除)

📚 案例目标

实现一个控制台版简易计算器程序,能够读取用户输入的两个数字和一个运算符,并输出相应的计算结果,帮助初学者练习基本的输入、条件判断与运算操作。


🛠 案例说明

用户输入两个数字和一个运算符(+-*/),程序根据输入进行计算并输出结果。例如:

ini 复制代码
请输入第一个数字:12
请输入运算符(+ - * /):*
请输入第二个数字:3
结果是:12 * 3 = 36

🔑 涉及知识点

  • fmt.Scanln() 用于读取多个输入
  • if-elseswitch 控制结构
  • 运算符处理与浮点数输出格式控制
  • 类型为 float64,适配小数运算

✅ 示例代码

go 复制代码
package main

import (
	"fmt"
)

func main() {
	var num1, num2 float64
	var operator string

	fmt.Print("请输入第一个数字:")
	fmt.Scanln(&num1)

	fmt.Print("请输入运算符(+ - * /):")
	fmt.Scanln(&operator)

	fmt.Print("请输入第二个数字:")
	fmt.Scanln(&num2)

	var result float64
	var valid = true

	switch operator {
	case "+":
		result = num1 + num2
	case "-":
		result = num1 - num2
	case "*":
		result = num1 * num2
	case "/":
		if num2 != 0 {
			result = num1 / num2
		} else {
			fmt.Println("错误:除数不能为0")
			valid = false
		}
	default:
		fmt.Println("错误:无效的运算符")
		valid = false
	}

	if valid {
		fmt.Printf("结果是:%.2f %s %.2f = %.2f\n", num1, operator, num2, result)
	}
}

📎 代码解析

代码段 说明
float64 类型 支持小数运算
fmt.Scanln() 逐个读取用户输入
switch 判断 匹配四种运算符,结构清晰
错误处理 如果除数为0或运算符无效,给予提示并终止运算
Printf 控制输出精度,两位小数

💡 补充说明

  • Scanln() 每次只能读取一个值,多个输入需多次调用或使用 fmt.Scan()
  • Printf 中使用 %.2f 可保留两位小数,提升结果美观性。
  • 此程序未实现循环运行,想连续计算需后续加入 for 循环(在后续案例讲解)。

🧪 示例运行

ini 复制代码
请输入第一个数字:8
请输入运算符(+ - * /):/
请输入第二个数字:2
结果是:8.00 / 2.00 = 4.00

🧩 练习扩展

  • 添加用户输入非法字符时的重试机制
  • 支持多个运算步骤,例如:12 + 5 * 2
  • 增加一个 退出程序 的选项,形成菜单式交互
相关推荐
南雨北斗7 分钟前
VSCODE进行代码格式化的方法
后端
深栈解码8 分钟前
第一章:认识JVM:跨平台的引擎与生态基石
java·后端
fortify18 分钟前
Git:从0掌握Git的使用,满足日常开发需求
后端
绵阳的脑内SSD20 分钟前
Lecture #20:Database Logging
后端
AirMan20 分钟前
深入浅出Redis:一文掌握Redis底层数据结构与实现原理
redis·后端·面试
Hx__24 分钟前
限流算法
后端
_代号00728 分钟前
Go 编译报错排查:vendor/golang.org/x/crypto/cryptobyte/asn1 no Go source files
后端·go
David爱编程28 分钟前
Deployment vs StatefulSet:怎么选?
后端·云原生·kubernetes
用户92724725021930 分钟前
新闻自动采集并通过API发布到博客
前端·后端
icecreamstorm32 分钟前
MySQL 事务 最全入门
后端·mysql