【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)
}
相关推荐
hrhcode6 小时前
【java工程师快速上手go】二.Go进阶特性
java·golang·go
Tomhex8 小时前
Go字符串拼接最佳实践
golang·go
zs宝来了8 小时前
Go 内存管理:三色标记 GC 与逃逸分析
golang·go·后端技术
zs宝来了12 小时前
Go pprof 性能剖析:CPU、内存与锁分析
golang·go·后端技术
hrhcode13 小时前
【java工程师快速上手go】一.Go语言基础
java·开发语言·golang
LlNingyu14 小时前
Go 实现无锁环形队列:面向多生产者多消费者的高性能 MPMC 设计
开发语言·golang·队列·mpmc·数据通道
深挖派15 小时前
GoLand 2026.1 安装配置与环境搭建 (保姆级图文教程)
后端·golang·编辑器·go·goland
geovindu15 小时前
go: Factory Method Pattern
开发语言·后端·golang
zs宝来了17 小时前
Go Context:上下文传播与取消机制
golang·go·源码解析·后端技术
GDAL17 小时前
为什么选择gin?
golang·gin