Golang fallthrough语句

使用 fallthrough 会强制执行后面的 case 语句,并且不会判断下一条 case 的表达式结果是否为 true。

package main
import "fmt"

func main() {
    cond := 1
    switch cond {
    case 1:
        fmt.Println("1、满足条件 case")
        fallthrough
    case 2:
        fmt.Println("2、不满足条件 case")
    default:
        fmt.Println("3、默认 case")
    }
}

以上代码执行结果为:

1、满足条件 case
2、不满足条件 case

从以上代码输出的结果可以看出:switch 满足 case 的第一个判断表达式 ,开始执行,因为 ”case 1“ 语句带有 fallthrough,程序会继续执行下一条 case 语句,且它不会去判断下一个 case 的表达式是否为 true。

执行完 ”case 2“ 语句后,由于 ”default” 语句没有带有 fallthrough,switch 执行结束。

我们再看一个范例:

package main
import "fmt"

func main() {
    cond := 1
    switch cond {
    case 1:
        fmt.Println("1、满足条件 case")
        fallthrough
    case 2:
        fmt.Println("2、不满足条件 case")
        fallthrough
    default:
        fmt.Println("3、默认 case")
    }
}

以上代码执行结果为:

1、满足条件 case
2、不满足条件 case
3、默认 case

因为 ”case 2“ 语句后带有 fallthrough,所以就会继续执行下一条 default 语句。

iota 是 Go 语言的一个保留字,用作常量计数器。iota 具有自增特性,可以简化数字增长的常量定义。iota 是一个具有魔法的关键字,往往令初学者难以理解其原理和使用方法。 1. 书写方法正确写法 ...