【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)
}
相关推荐
止语Lab8 小时前
从手动到框架:Go DI 演进的三个拐点
开发语言·后端·golang
我不是8神10 小时前
面试题:runtime.MAXPROCESS怎么处理?
golang
必胜刻11 小时前
全面解析 Token:从入门到 JWT 实战
golang·状态模式·web·前后端交互
yeeanna18 小时前
GO函数的特殊性
开发语言·后端·golang
eLIN TECE18 小时前
Go基础之环境搭建
开发语言·后端·golang
念何架构之路18 小时前
Go反射应用技巧
开发语言·后端·golang
初心未改HD18 小时前
Go语言测试与Benchmark:测试驱动开发的实践指南
开发语言·golang
念何架构之路19 小时前
Go Web基础和Http演进
开发语言·后端·golang
初心未改HD19 小时前
Go语言database/sql与SQLx:构建健壮的数据访问层
开发语言·golang
jieyucx20 小时前
Go 零基础数据结构:顺序表(像「排抽屉」一样学增删改查)
java·数据结构·golang