目錄
- 條件陳述句
- if條件陳述句
- switch條件陳述句
- 回圈陳述句
- for回圈
- goto陳述句
條件陳述句
Go的條件陳述句和其它語言類似,主要是不支持三目運算子所以?:這種條件判斷是不支持的,Go提供的條件判斷陳述句主要有 if 還有 switch這兩種形式下面是
if條件陳述句
if的幾種寫法,基本上和其它語言是一致的
if 條件 {
} else {
}
if 條件 {
} else if 條件 {
} else {
}
switch條件陳述句
switch和其它語言類似,都是類似下面的寫法:
switch var1 {
case val1:
...
case val2:
...
default:
...
}
有幾點差異的地方是,默認不需要break,case被匹配上了之后,就會進入分支,后面的case都不會匹配和執行,但是fallthrough可以強制執行下一條case,例如下面的代碼:
package main
func main() {
var a bool = true
switch a {
case true:
println("case true 1")
fallthrough
case false:
println("case false 2")
case true:
println("case true 3")
}
}
輸出為:
case true 1
case false 2
case后面可以是任何型別的變數,常量,或者運算式,但是case之間的型別必須保存一致,
回圈陳述句
Go是沒有while的,它提供了兩種可以進行回圈的操作for和goto,
for回圈
for的操作主要如下:
for 初始化;條件;執行 {
}
for 條件 {
}
for {
} //無限回圈,可以通過break跳出
for可以通過continue執行下潭訓圈,也可以break跳出回圈,和其它語言for還有一個差異就是for range可以對陣列 Slice Map進行遍歷:
package main
func main() {
a := [...]int{1, 2, 3}
for i, v := range a {
println(i, v)
}
}
//輸出
0 1
1 2
2 3
這里i等于值v在陣列中的下標,
goto陳述句
Go把goto保留了下來,它不僅僅用于回圈,可以跳轉到一段有標簽的代碼塊goto label,
下面是一個簡單的使用:
package main
func main() {
var a int = 0
loop:
if a < 5 {
a++
println(a)
goto loop
}
}
輸出:
1
2
3
4
5
goto是一個比較有爭議的操作,反對使用它的人認為它會讓代碼邏輯變得復雜,代碼的可讀性降低,支持的人認為它可以使用靈活,更加容易擴展,比如出現了例外或者需要統一處理邏輯,可以用goto直接進行跳轉,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/1890.html
標籤:Go
