`fallthrough` 关键字
本课属于 Coddy GO 学习旅程的“基础知识”单元。第 42 课,共 109 课。
在 Go 中,fallthrough 关键字允许我们在找到匹配项后,继续执行 switch 语句中的下一个 case。让我们来看看它是如何工作的。
首先,我们来创建一个简单的 switch 语句,使用 fallthrough 关键字来描述一个数字:
num := 15
switch {
case num < 20:
fmt.Print("Less than 20 ")
fallthrough
case num > 10:
fmt.Print("Greater than 10 ")
fallthrough
case num > 0:
fmt.Print("Positive number")
}运行这段代码后,我们会看到屏幕上打印出全部三条消息:
Less than 20 Greater than 10 Positive number这是因为第一个分支匹配(15 小于 20),而 fallthrough 关键字会强制 Go 也执行第二个分支。然后,第二个分支也使用了 fallthrough,这会让 Go 也执行第三个分支。如果没有 fallthrough,就只会执行第一个匹配的分支。
请记住,无论下一个 case 的条件是真是假,fallthrough 都会执行下一个 case。在我们的示例中,数字 15 恰好满足所有条件,但即使下一个 case 的条件为假,它也会执行。
挑战
入门在这个挑战中,你将练习在 switch 语句中使用 fallthrough 关键字。即使找到匹配项,fallthrough 关键字也能让程序继续执行下一个 case。
你有一个表示星期几的变量。你的任务是在合适的位置添加 fallthrough 关键字,让程序在日期为 'Monday' 时同时打印 'It's a weekday!' 和 'Time to work!'。
亲手试试
package main
import "fmt"
func main() {
// 表示星期几的变量
day := "Monday"
// 用 switch 语句检查星期几
switch day {
case "Monday":
fmt.Println("It's a weekday!")
// TODO: 在这里添加 fallthrough 关键字,继续执行下一个 case
case "Tuesday", "Wednesday", "Thursday", "Friday":
fmt.Println("Time to work!")
case "Saturday", "Sunday":
fmt.Println("It's the weekend!")
default:
fmt.Println("Invalid day!")
}
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Go 在线编译器