分岐(switch文)
switch文は条件によって処理の流れを制御する手段です。
switch文の書き方
キーワードswitch
を使って分岐処理を記述します。
基本形は次の通りです。case
とdefault
は省略できます。
switch 式 {
case 式1:
式が式1と合致する場合の処理
case 式2:
式が式2と合致する場合の処理
default:
式がcaseの式1、式2に合致しなかった場合の処理
}
サンプルコードは次の通りです。
const (
sunday = iota
monday
tuesday
wednesday
thursday
friday
saturday
)
w := sunday
switch w {
case tuesday:
fmt.Println("10%割引です。")
case monday, wednesday:
fmt.Println("15%割引です。")
default:
fmt.Println("通常価格です。")
}
// 実行結果:
// 通常価格です。
switch文の中でしか使わない変数は、式の前に宣言できます。
switch 変数宣言; 式 {
分岐処理
}
サンプルコードは次の通りです。
m := map[string]int{"x": 1, "y": 2}
switch v := m["x"]; v {
case 1, 2:
fmt.Println("1 or 2")
case 3:
fmt.Println("3")
}
// 実行結果:
// 1 or 2
キーワードswitch
の後の式は省略してcase
の式のみ記載することでもできます。
switch {
case 式1:
式1が真の場合の処理
case 式2:
式2が真の場合の処理
default:
caseにマッチしなかった場合の処理
}
サンプルコードは次の通りです。
age := 1
switch {
case age < 20:
fmt.Println("未成年です。")
case age < 65:
fmt.Println("成人です。")
default:
fmt.Println("高齢者です。")
}
// 実行結果:
// 未成年です。