控制流程(也稱為流程控制)是電腦運算領域的用語,意指在程式執行時,個別的指令(或是陳述、子程式)執行或求值的順序。
通常用於判斷條件是否成立,成立執行時執行區塊中的代碼
package main
import "fmt"
func main() {
a := 10
//判斷是否 a 有大於 1,有則印出 a
if a > 1 {
fmt.Println(a)
}
//判斷是否 a 有大於 10,有則印出 "a 大於10" 否則印出 "a 小於 10"
if a > 10 {
fmt.Println("a 大於10")
} else {
fmt.Println("a 小於 10")
}
//判斷是否 a 有大於 1,有則印出 "a 大於 1"
//否則如果 判斷 a 有無大於 5 有則印出 "a 大於 5"
//其餘則印出 a 大於 1 且也大於 5
if a > 1 {
fmt.Println("a 大於 1")
} else if a > 5 {
fmt.Println("a 大於 5")
} else {
fmt.Println("a 大於 1 且也大於 5")
}
}
其他寫法 可以在 if 後使用宣告語句並進行判斷
package main
import (
"fmt"
)
func main() {
if a := 5; a >= 5 {
fmt.Println(a)
} else {
fmt.Println("a小於等於5")
}
}
Golang Switch 不用在 case 當中放入break
case 後方表達式可以有: 常量、變數、有返回值 func
且在 case 可以放入多個表達式使用 , 進行分開
package main
import "fmt"
func main() {
a := 0
b := 2
switch a {
//case 後可以接表達式(常量值、變數、有返回值的func)
case returnZero(), 1:
fmt.Println("case 0")
case b, 3:
fmt.Println("case 1")
case 4, 5:
fmt.Println("case 2")
default:
fmt.Println("當上述case皆沒有時則會到預設case")
}
}
func returnZero() int {
return 0
}
也可以用類似使用 if else 方式來使用
package main
import "fmt"
func main() {
age := 10
switch {
case age == 10:
fmt.Println("age == 10")
case age == 20:
fmt.Println("age == 20")
default:
fmt.Println("沒有匹配到")
}
}
使用 fallthrough 跳至下一個case
package main
import "fmt"
func main() {
age := 10
switch {
case age == 10:
fmt.Println("age == 10")
fallthrough
case age == 20:
fmt.Println("age == 20")
fallthrough
default:
fmt.Println("沒有匹配到")
}
}