前一天介紹了 Go 的資料型別、變數/常數宣告以及別名用法
今天要來介紹的是 Go 的 if else 和 switch case
Go 的 if else 語法跟常見的程式語言基本相同,如下
if 條件 {
}
// Example:
if x > 0 {
// x > 0 要做的事
}
if 條件 {
} else {
}
// Example:
if x > 0 {
// x > 0 要做的事
} else {
// x < 0 要做的事
}
if 條件一 {
} else if 條件二 {
} else {
}
// Example:
if x > 0 {
// x > 0 要做的事
} else if x == 0 {
// x = 0 要做的事
} else {
// x < 0 要做的事
}
除了上面這種常見的寫法外,還有另外一種搭配取值的寫法,像是下面這樣
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println(pow(4, 2, 10))
}
func pow(x, n, lim float64) float64 {
if v := math.Pow(x, n); v < lim {
return v
} else {
fmt.Printf("%g >= %g\n", v, lim)
}
return lim
}
在 13 行的 if 前段,先宣告變數 v 來取得 math.Pow(x, n)
的值
接著透過 ;
區隔開,接著後段在宣告判斷條件 v < lim
這種 if 寫法在開發上也是很常見的,而這裡的變數 v
只作用在這個 if 判斷內 (13~17 行)
Go 的 switch case 語法分為兩種,一種是 switch 後面帶變數的,一種是不帶變數的
// 帶變數的
switch 變數 {
case 條件一:
// 條件一成立後要做的事
case 條件二:
// 條件二成立後要做的事
case 條件三:
// 條件三成立後要做的事
}
// 帶變數的 Example:
x := 5
switch x {
case 0:
fmt.Println("0")
case 1:
fmt.Println("1")
case 5:
fmt.Println("5")
}
// 不帶變數的
switch {
case 條件一:
// 條件一成立後要做的事
case 條件二:
// 條件二成立後要做的事
case 條件三:
// 條件三成立後要做的事
}
// 不帶變數的 Example:
x := 5
switch {
case x > 0:
fmt.Printf("x > 0,%d\n", x)
case x == 0:
fmt.Printf("x = 0,%d\n", x)
case x < 0:
fmt.Printf("x < 0,%d\n", x)
}
如果想要寫 default 的話,也可以在 case 的最後面,多新增一個 default 選項
// 帶變數的
switch 變數 {
case 條件一:
// 條件一成立後要做的事
case 條件二:
// 條件二成立後要做的事
case 條件三:
// 條件三成立後要做的事
default:
// 上述條件都不符合時要做的事
}
// 不帶變數的
switch {
case 條件一:
// 條件一成立後要做的事
case 條件二:
// 條件二成立後要做的事
case 條件三:
// 條件三成立後要做的事
default:
// 上述條件都不符合時要做的事
}
如果想要執行完 case A 後,接續執行下一個 case 的話
可以在 case A 內新增 fallthrough
像是下面這樣
宣告變數 x 等於 5,做 switch case,會進 case x > 0
,執行完後
會再接著執行 case x == 0
裡的程式
x := 5
switch {
case x > 0:
fmt.Printf("x > 0,%d\n", x)
fallthrough
case x == 0:
fmt.Printf("x = 0,%d\n", x)
case x < 0:
fmt.Printf("x < 0,%d\n", x)
}
今天簡單介紹了 Go 的 if else、switch case 用法
下一篇會來介紹 for 的用法
明天見~