if語句和switch語句

在程序控制方面一般都是if語句和switch語句的,那麼在Go語言當中同樣是有if語句和switch語句,而且還有它自身一些獨特的特點,那麼下面慢慢介紹這兩個程序控制語句。

1、if語句

在Go語言當中if語句的語法為:

if 條件判斷1 {
...
} else if 條件判斷2 {
...
} else {
...
}

注意這個“{”必須和條件判斷在同一行,這一點跟其它的語言有一點不太一樣。

同時在Go語言當中,if當中還支持有一個初始化語句,同時與條件判斷用“;”隔開,即語法為:

if 初始化語句; 條件判斷1 {
...
} else if 條件判斷2 {
...
} else {
...
}

舉例說明:

例子1:

a := 10
if a > 8 {
fmt.Println("a = ", a)
}

由於a為10,10是大於8的,滿足條件,所以可以輸出結果,即:

a = 10

例子2:

if ch := 'b'; ch > 'b' {
fmt.Println("ch > b")
} else if ch < 'b' {
fmt.Println("ch < b")
} else {
fmt.Println("ch = b")
}

這個例子當中,是在條件判斷的前面加了一個初始化語句,變量ch的值被初始為'b',那麼前面兩個判斷條件都不滿足,所以只有走else,那麼結果為:

ch = b

2、switch語句

在Go語言當中switch語句的語法為:

switch 變量 {
case 值1:
...
// 默認是帶有break
case 值2:
...
// 默認是帶有break
case 值3, 值4: // 如果有多個值用“,”隔開
...
// 默認是帶有break

default:
...
}

注意:在Go語言當中是默認帶有break的,即只滿足了一個條件,執行完後,就會跳出這個switch語句,同時如果case後面有多個值,則用“,”隔開,表示滿足其中一個值,就可以執行裡面的語句。

當然在switch後面也是可以帶一個初始化語句的,然後與變量名用“;”隔開,即:

switch 初始化語句; 變量 {
case 值1:
...
// 默認是帶有break
case 值2:
...
// 默認是帶有break
case 值3, 值4: // 如果有多個值用“,”隔開
...
// 默認是帶有break
default:
...
}

同時Go語言也支持在switch後面直接是“{”,然後在case上加條件判斷,即:

switch {
case 條件判斷1:
...
// 默認是帶有break
case 條件判斷2:
...

// 默認是帶有break
case 條件判斷3:
...
// 默認是帶有break
default:
...
}

舉例說明:

例子1:

switch a := 3; a {
case 1:
fmt.Println("a = 1")
case 2:
fmt.Println("a == 2")
case 3, 4:
fmt.Println("a == 3")
default:
fmt.Println("xxx")
}

由於a的值為3,滿足第3個case,則打印結果為:

a == 3

例子2:

num := 90
switch {
case num >= 80:
fmt.Println("num >= 80,則為優秀")
case num >= 70:
fmt.Println("80 > num >= 70,則為良好")
case num >= 60:
fmt.Println("70 > num >= 60,則為及格")
default:
fmt.Println("不及格")
}

由於num為90,則滿足第1個case條件,執行完成後,由於默認帶有break則跳出switch,則打印結果為:

num >= 80,則為優秀

注意在switch語句,可以加上fallthrough關鍵字,程序執行到fallthrough後,那麼後面的case會無條件執行,也即多會執行,例如:

switch a := 1; a {
case 1:
fmt.Println("a = 1")
fallthrough
case 2:
fmt.Println("a == 2")
fallthrough
case 3, 4:
fmt.Println("a == 3")
fallthrough
default:
fmt.Println("xxx")
}

a的值初始化為1,那麼滿足條1個case,首先打印a = 1,由於有fallthrough關鍵字,則不會跳出switch語句,會無條件執行後面的第2個case,依次類推,所以結果為:

a = 1
a == 2
a == 3
xxx


分享到:


相關文章: