選單
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

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
自己動手試一試 »

Go 練習

透過練習來測試自己

練習

請填寫缺失的部分以完成以下 switch 語句。

package main   
import ("fmt") 
func main() { var day = 2 switch { (1): fmt.Print("Saturday") (2): fmt.Print("Sunday") } }

開始練習


×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援