2026-03-13 23:54:07 +08:00
|
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
|
|
import "fmt"
|
|
|
|
|
|
|
|
|
|
|
|
func exercise1() {
|
|
|
|
|
|
fmt.Println("=== 练习1:基本switch ===")
|
|
|
|
|
|
|
|
|
|
|
|
day := 3
|
|
|
|
|
|
|
|
|
|
|
|
// 使用switch语句,根据day的值输出对应的星期
|
|
|
|
|
|
// 1: 星期一, 2: 星期二, 3: 星期三, 4: 星期四
|
|
|
|
|
|
// 5: 星期五, 6: 星期六, 7: 星期日
|
|
|
|
|
|
// 其他: 无效的天数
|
2026-03-14 20:47:33 +08:00
|
|
|
|
switch day {
|
|
|
|
|
|
case 1:
|
2026-03-13 23:54:07 +08:00
|
|
|
|
fmt.Println("星期一")
|
2026-03-14 20:47:33 +08:00
|
|
|
|
case 2:
|
2026-03-13 23:54:07 +08:00
|
|
|
|
fmt.Println("星期二")
|
2026-03-14 20:47:33 +08:00
|
|
|
|
case 3:
|
2026-03-13 23:54:07 +08:00
|
|
|
|
fmt.Println("星期三")
|
2026-03-14 20:47:33 +08:00
|
|
|
|
case 4:
|
2026-03-13 23:54:07 +08:00
|
|
|
|
fmt.Println("星期四")
|
2026-03-14 20:47:33 +08:00
|
|
|
|
case 5:
|
2026-03-13 23:54:07 +08:00
|
|
|
|
fmt.Println("星期五")
|
2026-03-14 20:47:33 +08:00
|
|
|
|
case 6:
|
2026-03-13 23:54:07 +08:00
|
|
|
|
fmt.Println("星期六")
|
2026-03-14 20:47:33 +08:00
|
|
|
|
case 7:
|
2026-03-13 23:54:07 +08:00
|
|
|
|
fmt.Println("星期日")
|
|
|
|
|
|
default:
|
|
|
|
|
|
fmt.Println("无效的天数")
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func exercise2() {
|
|
|
|
|
|
fmt.Println("\n=== 练习2:多值匹配 ===")
|
|
|
|
|
|
|
2026-03-14 20:47:33 +08:00
|
|
|
|
month := 3
|
2026-03-13 23:54:07 +08:00
|
|
|
|
|
|
|
|
|
|
// 使用switch语句,根据month的值输出季节
|
|
|
|
|
|
// 使用多值匹配(一个case匹配多个值)
|
|
|
|
|
|
// 3,4,5: 春季
|
|
|
|
|
|
// 6,7,8: 夏季
|
|
|
|
|
|
// 9,10,11: 秋季
|
|
|
|
|
|
// 12,1,2: 冬季
|
2026-03-14 20:47:33 +08:00
|
|
|
|
switch month {
|
|
|
|
|
|
case 3, 4, 5:
|
2026-03-13 23:54:07 +08:00
|
|
|
|
fmt.Println("春季")
|
2026-03-14 20:47:33 +08:00
|
|
|
|
case 6, 7, 8:
|
2026-03-13 23:54:07 +08:00
|
|
|
|
fmt.Println("夏季")
|
2026-03-14 20:47:33 +08:00
|
|
|
|
case 9, 10, 11:
|
2026-03-13 23:54:07 +08:00
|
|
|
|
fmt.Println("秋季")
|
2026-03-14 20:47:33 +08:00
|
|
|
|
case 12, 1, 2:
|
2026-03-13 23:54:07 +08:00
|
|
|
|
fmt.Println("冬季")
|
|
|
|
|
|
default:
|
|
|
|
|
|
fmt.Println("无效的月份")
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func exercise3() {
|
|
|
|
|
|
fmt.Println("\n=== 练习3:无表达式的switch ===")
|
|
|
|
|
|
|
|
|
|
|
|
score := 92
|
|
|
|
|
|
|
|
|
|
|
|
// 使用无表达式的switch,根据score判断等级
|
|
|
|
|
|
// 90-100: 优秀
|
|
|
|
|
|
// 80-89: 良好
|
|
|
|
|
|
// 60-79: 及格
|
|
|
|
|
|
// 0-59: 不及格
|
|
|
|
|
|
switch {
|
2026-03-14 20:47:33 +08:00
|
|
|
|
case score >= 90 && score <= 100:
|
2026-03-13 23:54:07 +08:00
|
|
|
|
fmt.Printf("分数: %d, 等级: 优秀\n", score)
|
2026-03-14 20:47:33 +08:00
|
|
|
|
case score >= 80 && score < 90:
|
2026-03-13 23:54:07 +08:00
|
|
|
|
fmt.Printf("分数: %d, 等级: 良好\n", score)
|
2026-03-14 20:47:33 +08:00
|
|
|
|
case score >= 60 && score < 79:
|
2026-03-13 23:54:07 +08:00
|
|
|
|
fmt.Printf("分数: %d, 等级: 及格\n", score)
|
2026-03-14 20:47:33 +08:00
|
|
|
|
case score < 60:
|
2026-03-13 23:54:07 +08:00
|
|
|
|
fmt.Printf("分数: %d, 等级: 不及格\n", score)
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func exercise4() {
|
|
|
|
|
|
fmt.Println("\n=== 练习4:fallthrough ===")
|
|
|
|
|
|
|
|
|
|
|
|
num := 1
|
|
|
|
|
|
|
|
|
|
|
|
// 使用switch和fallthrough,当num=1时:
|
|
|
|
|
|
// 输出"one"然后继续执行case 2输出"two"
|
|
|
|
|
|
// 提示:在case 1的末尾添加fallthrough
|
2026-03-14 20:47:33 +08:00
|
|
|
|
switch num {
|
2026-03-13 23:54:07 +08:00
|
|
|
|
case 1:
|
|
|
|
|
|
fmt.Println("one")
|
2026-03-14 20:47:33 +08:00
|
|
|
|
fallthrough
|
2026-03-13 23:54:07 +08:00
|
|
|
|
case 2:
|
|
|
|
|
|
fmt.Println("two")
|
|
|
|
|
|
case 3:
|
|
|
|
|
|
fmt.Println("three")
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func exercise5() string {
|
2026-03-14 20:47:33 +08:00
|
|
|
|
fmt.Println("=== 练习5:switch返回值 ===")
|
2026-03-13 23:54:07 +08:00
|
|
|
|
|
|
|
|
|
|
status := 200
|
|
|
|
|
|
|
|
|
|
|
|
// 使用switch语句,根据HTTP状态码返回对应的描述
|
|
|
|
|
|
// 200: OK
|
|
|
|
|
|
// 404: Not Found
|
|
|
|
|
|
// 500: Internal Server Error
|
|
|
|
|
|
// 其他: Unknown Status
|
|
|
|
|
|
var result string
|
2026-03-14 20:47:33 +08:00
|
|
|
|
switch status {
|
2026-03-13 23:54:07 +08:00
|
|
|
|
case 200:
|
|
|
|
|
|
result = "OK"
|
|
|
|
|
|
case 404:
|
|
|
|
|
|
result = "Not Found"
|
|
|
|
|
|
case 500:
|
|
|
|
|
|
result = "Internal Server Error"
|
|
|
|
|
|
default:
|
|
|
|
|
|
result = "Unknown Status"
|
|
|
|
|
|
}
|
|
|
|
|
|
return result
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func main() {
|
2026-03-14 20:47:33 +08:00
|
|
|
|
fmt.Println("=== switch 练习 ===")
|
2026-03-13 23:54:07 +08:00
|
|
|
|
|
|
|
|
|
|
exercise1()
|
|
|
|
|
|
exercise2()
|
|
|
|
|
|
exercise3()
|
|
|
|
|
|
exercise4()
|
|
|
|
|
|
|
|
|
|
|
|
result := exercise5()
|
|
|
|
|
|
fmt.Println(result)
|
|
|
|
|
|
}
|