【GO】switch 练习题

星期判断

题目描述

日历工具中,用户输入数字(1-7),程序通过switch匹配输出对应的星期名称。

输入输出示例

请输入数字:5

星期五

实现代码

Go 复制代码
package main

import "fmt"

func main() {
	// 定义变量接收用户输入
	var weekday int
	fmt.Print("请输入数字:")
	// 读取用户输入
	_, err := fmt.Scan(&weekday)
	if err != nil {
		fmt.Println("错误:请输入有效的整数!")
		return
	}

	// switch单值匹配星期
	switch weekday {
	case 1:
		fmt.Println("星期一")
	case 2:
		fmt.Println("星期二")
	case 3:
		fmt.Println("星期三")
	case 4:
		fmt.Println("星期四")
	case 5:
		fmt.Println("星期五")
	case 6:
		fmt.Println("星期六")
	case 7:
		fmt.Println("星期日")
	default:
		fmt.Println("无效数字(请输入1-7)")
	}
}

季节判断

题目描述

天气应用中,用户输入月份(1-12),程序通过switch区间匹配输出对应季节。

季节规则:3-5 春、6-8 夏、9-11 秋、12/1/2 冬

输入输出示例

请输入月份:8

夏季

实现代码

Go 复制代码
package main

import "fmt"

func main() {
	// 定义变量接收用户输入
	var month int
	fmt.Print("请输入月份:")
	// 读取用户输入并校验
	_, err := fmt.Scan(&month)
	if err != nil {
		fmt.Println("错误:请输入有效的整数!")
		return
	}

	// switch区间匹配季节
	switch {
	case month >= 3 && month <= 5:
		fmt.Println("春季")
	case month >= 6 && month <= 8:
		fmt.Println("夏季")
	case month >= 9 && month <= 11:
		fmt.Println("秋季")
	case month == 12 || month == 1 || month == 2:
		fmt.Println("冬季")
	default:
		fmt.Println("无效月份(请输入1-12)")
	}
}

成绩等级判定

题目描述

学生成绩管理系统中,用户输入分数(0-100),程序通过switch区间匹配输出对应的等级(A/B/C/D/E),输入无效时提示错误。

等级规则:90-100→A、80-89→B、70-79→C、60-69→D、0-59→E;

输入输出示例

请输入学生分数(0-100):85

等级:B

实现代码

Go 复制代码
package main

import "fmt"

func main() {
	// 定义变量接收用户输入
	var score int
	fmt.Print("请输入学生分数(0-100):")

	// 读取输入并校验是否为有效整数
	_, err := fmt.Scan(&score)
	if err != nil {
		fmt.Println("错误:请输入有效的整数分数!")
		return
	}

	// 定义变量存储等级
	var level string

	// 先校验分数范围,再用switch判断等级
	if score < 0 || score > 100 {
		fmt.Println("错误:分数需在0-100之间!")
		return
	}

	// switch无表达式区间匹配等级
	switch {
	case score >= 90 && score <= 100:
		level = "A" // 优秀
	case score >= 80 && score < 90:
		level = "B" // 良好
	case score >= 70 && score < 80:
		level = "C" // 中等
	case score >= 60 && score < 70:
		level = "D" // 及格
	case score >= 0 && score < 60:
		level = "E" // 不及格
	}

	// 输出结果
	fmt.Printf("等级:%s\n", level)
}
相关推荐
灯澜忆梦2 小时前
GO---可见性规则
开发语言·golang
tiana_8 小时前
写了个零依赖的 Go 版本管理器,curl | bash 完事
开发语言·golang·bash
灯澜忆梦10 小时前
GO---map函数
开发语言·前端·后端·golang
北冥you鱼11 小时前
Go语言与默克尔树:区块链数据完整性的基石
开发语言·golang·区块链
布朗克16813 小时前
Go 入门到精通-15-错误处理
开发语言·python·golang·错误处理
北冥you鱼15 小时前
Go-Ethereum (Geth) 最佳实践:从部署到生产环境优化
开发语言·后端·golang
李燚1 天前
Eino devops 调试系统源码:GraphCompileCallback 怎么工作(第50篇-E36)
数据库·golang·agent·devops·graphql·aiagent·eino
名字还没想好☜1 天前
Go 内存逃逸分析:什么时候变量跑到堆上
开发语言·算法·性能优化·golang·go·内存逃逸
ttwuai1 天前
后台管理系统 RBAC 排障:隐藏菜单后接口为什么还能调用
golang
Wang's Blog2 天前
Go-Zero框架上手前奏2: 微服务核心要素 —— 拆分、通信与无状态设计
开发语言·微服务·golang