0
点赞
收藏
分享

微信扫一扫

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

📚 案例目标

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

🛠 案例说明

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

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

🔑 涉及知识点

  • fmt.Scanln() 用于读取多个输入
  • if-elseswitch 控制结构
  • 运算符处理与浮点数输出格式控制
  • 类型为 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
  • 增加一个 退出程序 的选项,形成菜单式交互
举报

相关推荐

0 条评论