Golang switch語句總結


switch 語句基本結構

switch 條件表達式 {
case 常量表達式1:
    語句 1
case 常量表達式2:
    語句 2
    .
    .
    .
case 常量表達式n:
    語句 n
default:
    語句 n+1
}

執行流程

(1)計算條件表達式的值value

(2)如果value滿足某條case語句,則執行該語句,執行完跳出switch語句

(3)如果value不滿足所有的case語句:

​ (3.1)如果有default,則執行該語句,執行完跳出switch語句

​ (3.2)如果沒有default,則直接跳出switch語句

注意事項

(1)條件表達式可以是任意Go語言支持的數據類型

(3)不需要break語句

(4)default分支為可選項,但最多只能有一個default分支

(5)如果有兩個以上的case分支的常量表達式取得相同的值,則編譯會出錯

多case語句

有時在一條case語句中可以對多個條件值進行測試,任意一個條件滿足都會執行case語句體

func main() {
	var test string
	fmt.Print("請輸入一個字符串:")
	fmt.Scan(&test)
	switch test {
	case "c":
		fmt.Println("c")
	case "java":
		fmt.Println("java")
	case "go", "golang":
		fmt.Println("hello golang")
	default:
		fmt.Println("python")
	}
}
// 請輸入一個字符串:go
// hello golang

// 請輸入一個字符串:golang
// hello golang

fallthrough語句

通常情況下,switch語句檢測到符合條件的第一個case語句,就會執行該分支的代碼,執行完會直接跳出switch語句。使用 fallthrough 語句,可以在執行完該case語句后,不跳出,繼續執行下一個case語句。

func main() {
	var test string
	fmt.Print("請輸入一個字符串:")
	fmt.Scan(&test)
	switch test {
	case "go":
		fmt.Println("hello go")
	case "golang":
		fmt.Println("hello golang")
		fallthrough
	case "gopher":
		fmt.Println("hello gopher")
	case "java":
		fmt.Println("java")
	}
}
// 請輸入一個字符串:go
// hello go

// 請輸入一個字符串:golang
// hello golang
// hello gopher

無條件表達式switch語句

如果switch關鍵字后面沒有條件表達式,則必須在case語句中進行條件判斷,即類似於 if else if 語句

func main() {
	var score int
	fmt.Print("請輸入成績:")
	fmt.Scan(&score)
	switch {
	case score >= 90:
		fmt.Println("good")
	case score >= 80 && score < 90:
		fmt.Println("well")
	case score < 80:
		fmt.Println("ok")
	}
}
// 請輸入成績:60
// ok

// 請輸入成績:85
// well

小結

平時寫Go語言很少用到switch語句,有時候突然用到,一些細節可能又忘了,所以寫一篇博客總結一下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM