导航
×
   ❮   
HTML CSS JavaScript PHP Go ECMS

Go switch 语句


switch 语句

使用 switch 语句从多个代码块中选择一个来执行。

Go 中的 switch 语句类似于 C、C++、Java、JavaScript 和 PHP 中的语句。不同之处在于它只执行匹配的 case,因此不需要 break 语句。


单 case switch 语法

语法

switch 表达式 {
case x:
  // 代码块
case y:
  // 代码块
case z:
...
default:
  // 代码块
}

工作原理如下

  • 表达式只计算一次
  • switch 表达式的值与每个 case 的值进行比较
  • 如果匹配成功,则执行关联的代码块
  • default 关键字是可选的。如果没有任何 case 匹配,则指定要运行的代码

单 case switch 实例

下面的实例使用星期几的数字来计算星期几的名称

实例

package main
import ("fmt")

func main() {
  day := 4

  switch day {
  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("星期日")
  }
}

结果

Thursday
亲自试一试 »

default 关键字

default关键字指定了在没有 case 匹配时运行的一些代码。

实例

package main
import ("fmt")

func main() {
  day := 8

  switch day {
  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("不是一个工作日")
  }
}

结果

不是一个工作日
亲自试一试 »

所有 case 的值都应与 switch 表达式具有相同的类型。否则,编译器将报错

实例

package main
import ("fmt")

func main() {
  a := 3

  switch a {
  case 1:
    fmt.Println("a is one")
  case "b":
    fmt.Println("a is b")
  }
}

结果

./prog.go:11:2: cannot use "b" (type untyped string) as type int
亲自试一试 »

freew3c.com 中文网是独立运营的中文开发者学习平台,与 freew3c.com 无关联。提供的内容仅用于学习和测试,不保证内容的正确性。


Copyright @2020-2026 京ICP备888888号-8