golang switch文でcaseが複数ある場合の挙動について
今回は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をもっと詳しくなりたい方に
初めてのGo言語
Go言語の入門から応用まではこの一冊で網羅されています。説明も順序立てて説明されており完成度の高い参考書となっています。
詳解Go言語Webアプリケーション開発
こちらはGo言語の基礎知識を得たあとに読むことをすすめる本となっています。ハンズオン形式で手を動かしながら実装をしていくことができるため、実際の開発を意識しながらGo言語を学ぶことができます。
以下の記事では他にも筆者が実際に読んでおすすめしたい本をまとめています。
【Go入門】Golang基礎入門 + 各種ライブラリ + 簡単なTodoWebアプリケーション開発(Go言語)
まだGo言語の勉強を始めていない方、全くの初心者の方にはこちらのUdemy教材が最もおすすめです。
この教材ではgolangの基礎について網羅的に学ぶことができます。ただ見て学ぶだけでなく、講座の中でアプリ作成まで行うことで学んだことの理解をさらに深めることができます。
現役シリコンバレーエンジニアが教えるGo入門 + 応用でビットコインのシストレFintechアプリの開発
個人的に最も勉強になったのは「現役シリコンバレーエンジニアが教えるGo入門 + 応用でビットコインのシストレFintechアプリの開発」という教材です。
本格的なレクチャーに入る前に、なぜGoなのか、なぜFintechなのかについて説明されていることで、Goの概念や意味について大枠から理解することができます。
以下の記事では筆者が実際に受講したおすすめUdemy教材をまとめています。
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?