【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)
}
相关推荐
添尹15 小时前
Go语言基础之变量和常量
golang
参.商.20 小时前
【Day43】49. 字母异位词分组
leetcode·golang
参.商.21 小时前
【Day45】647. 回文子串 5. 最长回文子串
leetcode·golang
AMoon丶1 天前
Golang--内存管理
开发语言·后端·算法·缓存·golang·os
lars_lhuan1 天前
Go Context
golang
AMoon丶1 天前
Golang--垃圾回收
java·linux·开发语言·jvm·后端·算法·golang
Dylan~~~1 天前
Go语言Web框架选型指南:从入门到精通
开发语言·前端·golang
hongtianzai1 天前
Laravel7.x十大核心特性解析
java·c语言·开发语言·golang·php
Java面试题总结1 天前
go从零单排之方法
开发语言·后端·golang