【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)
}
相关推荐
何以解忧,唯有..5 天前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
踏着七彩祥云的小丑6 天前
Go学习第9天:并发编程 + 文件操作 + 正则表达式
学习·golang·正则表达式·go
JCGKS6 天前
Go `init` 函数:包初始化顺序到底是怎样的
golang·init·init执行顺序
何以解忧,唯有..6 天前
Go语言中的const:常量声明与iota枚举详解
java·开发语言·golang
geovindu6 天前
go: Reactor Pattern
开发语言·后端·设计模式·golang·反应器模式
記億揺晃着的那天6 天前
Java 调用外部 Go 程序的实践:ProcessBuilder 在生产环境中的应用
java·golang·processbuilder
jingling5556 天前
go | 环境安装和快速入门
开发语言·后端·golang
java_cj7 天前
从kubectl学Visitor模式:如何优雅处理多态数据结构的遍历
云原生·golang·k8s·访问者模式
何以解忧,唯有..7 天前
Go语言类型转换详解:从基础到进阶实践
开发语言·后端·golang
何以解忧,唯有..7 天前
Go 语言指针类型详解:从基础到实战
开发语言·后端·golang