今回はgolangのswitch文でcaseが複数ある場合の挙動について解説していきます。
目次
switch文
Go言語にはswitch文を使うことで一つの変数から条件分岐を判定を行うことができます。
func main() {
a := 2
switch a {
case 1:
fmt.Println("×")
case 2:
fmt.Println("〇")
case 3:
fmt.Println("×")
}
}
このように変数aの値によって処理を分岐することができます。今回はa=2のため、実行結果は〇となります。
caseには複数の値を書ける
golangのswitch文ではcaseの複数の条件を書くことができます。
func main() {
a := 2
switch a {
case 1:
fmt.Println("×")
case 2, 3:
fmt.Println("〇")
case 4:
fmt.Println("×")
}
}
例えば2番目のcase条件を「2,3」としてみました。この場合でも実行結果は〇と出力されます。
つまりcaseに複数の条件を書くことで、OR条件とすることができるのです。
func main() {
a := 3
switch a {
case 1:
fmt.Println("×")
case 2, 3:
fmt.Println("〇")
case 4:
fmt.Println("×")
}
}
aに3を代入しましたが、この実行結果も〇です。
func main() {
a := 4
switch a {
case 1:
fmt.Println("×")
case 2, 3:
fmt.Println("〇")
case 4:
fmt.Println("×")
}
}
aに4を代入すると最後の条件式に引っ掛かるため×が出力されます。
どの条件式も当てはまらなかった場合
次にどのcaseにも引っ掛からなかった場合についてです。
func main() {
a := 5
switch a {
case 1:
fmt.Println("×")
case 2, 3:
fmt.Println("〇")
case 4:
fmt.Println("×")
}
}
この実行結果は何も起きません。a=5ですが、どのcaseにも一致しないため処理が行われません。
func main() {
a := 5
switch a {
case 1:
fmt.Println("×")
case 2, 3:
fmt.Println("〇")
case 4:
fmt.Println("×")
default:
fmt.Println("どれにも合致しませんでした。")
}
}
全てのcaseを想定できない場合はdefaultを使うことで、全てのcaseに合致しなかった場合の処理を実行してくれます。
このコードの実行結果は「どれにも合致しませんでした。」を表示されます。
golangをもっと詳しくなりたい方に
golang学習のために筆者が実際に受講したUdemy教材をまとめています。
golang学習のために筆者が実際に読んでおすすめしたい本をまとめています。
【入門】golangの学習におすすめの本/書籍7選
これから業務でgolangを使うことになった方、これからgolangを使ってキャリアを歩んでいきたいという方でどのように学習していこうか悩んでいる方もいるかと思います。 ...