`fallthrough` --强制执行下一次case

在 Go 语言的 switch 语句中,fallthrough 关键字是用来强制执行下一个 case的语句块。它并不是用来多次执行的,而是强制执行一次

解释:

  • 默认情况下,switch 语句在找到匹配的 case 后,会直接跳出 switch 结构,不会继续执行后面的 case 语句块。
  • 如果你在一个 case 中使用了 fallthrough,那么程序会强制继续执行下一个 case 语句块,而不管下一个 case 是否满足条件。这个执行只会发生一次。

示例:

package main

import "fmt"

func main() {
    i := 2
    switch i {
    case 1:
        fmt.Println("Case 1")
    case 2:
        fmt.Println("Case 2")
        fallthrough // 强制执行下面的 Case 3
    case 3:
        fmt.Println("Case 3")
    case 4:
        fmt.Println("Case 4")
    }
}

输出:

Case 2
Case 3

解释:

  • i 的值是 2,所以程序首先匹配到 case 2
  • case 2 中,遇到了 fallthrough,所以程序会继续执行 case 3 的语句,即输出 Case 3
  • 注意,fallthrough 只是强制执行一次下一个 case,并不会继续向后执行更多的 case

总结:

  • fallthrough 只会强制执行下一个 case 语句块一次,而不是多次。
  • 它跳过了正常的条件匹配机制,不管下一个 case 的条件是否满足,都会执行。
posted @ 2025-02-08 20:02  牛马chen  阅读(72)  评论(0)    收藏  举报