📚 案例目标
实现一个控制台版简易计算器程序,能够读取用户输入的两个数字和一个运算符,并输出相应的计算结果,帮助初学者练习基本的输入、条件判断与运算操作。
🛠 案例说明
用户输入两个数字和一个运算符(+
、-
、*
、/
),程序根据输入进行计算并输出结果。例如:
请输入第一个数字:12 请输入运算符(+ - * /):* 请输入第二个数字:3 结果是:12 * 3 = 36
🔑 涉及知识点
- •
fmt.Scanln()
用于读取多个输入 - •
if-else
或switch
控制结构 - • 运算符处理与浮点数输出格式控制
- • 类型为
float64
,适配小数运算
✅ 示例代码
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
循环(在后续案例讲解)。
🧪 示例运行
请输入第一个数字:8 请输入运算符(+ - * /):/ 请输入第二个数字:2 结果是:8.00 / 2.00 = 4.00
🧩 练习扩展
- • 添加用户输入非法字符时的重试机制
- • 支持多个运算步骤,例如:12 + 5 * 2
- • 增加一个
退出程序
的选项,形成菜单式交互