Go言語のswitchで複雑な条件分岐を整理するテクニック
生徒
「Go言語でたくさん条件があるとき、if文がごちゃごちゃしてわかりにくくなります…。何かスッキリ書く方法ってありますか?」
先生
「それなら、switch文を使うのがおすすめですよ。条件がたくさんあるときも、見やすく整理して書けます。」
生徒
「えっ、switchって何か特別な使い方があるんですか?」
先生
「はい、Go言語のswitch文は他の言語より柔軟で便利なんです。では、具体的な使い方を見てみましょう!」
1. Go言語のswitch文とは?
Go言語のswitch文は、複数の条件をきれいに分岐させたいときに使う制御構造です。if文を何重にも書くと、見た目もわかりにくくなってしまいますが、switch文を使えば、すっきり整理された形で条件分岐が書けます。
たとえば、「今日の曜日によってメッセージを変える」といった処理がある場合、switch文が役立ちます。
2. 基本的なswitch文の使い方
Go言語のswitch文は、次のような形で書きます。
day := "月曜日"
switch day {
case "月曜日":
fmt.Println("週の始まりです!")
case "金曜日":
fmt.Println("もうすぐ週末!")
default:
fmt.Println("普通の日です。")
}
switchのあとに調べたい値を書いて、caseで条件を並べていきます。defaultはどれにも当てはまらない場合に使います。
3. 複数の値をcaseにまとめることができる
Go言語のswitch文は、1つのcaseに複数の値をカンマ区切りで指定できます。たとえば、次のように書けます。
switch day {
case "土曜日", "日曜日":
fmt.Println("週末です!ゆっくり休みましょう。")
case "月曜日":
fmt.Println("週の始まり、がんばりましょう!")
default:
fmt.Println("平日ですね。")
}
このように書くことで、「土曜日」と「日曜日」は同じ処理にまとめられて、コードがすっきりします。
4. switchに条件式を使う方法
switchは、値ではなく条件式でも使えます。つまり、if文のように使えるのです。
score := 85
switch {
case score >= 90:
fmt.Println("とても優秀です!")
case score >= 70:
fmt.Println("合格です!")
default:
fmt.Println("もう少しがんばりましょう。")
}
switchのあとに何も書かないことで、caseに条件式(trueになるかどうか)を書けます。これはif文をすっきり書きたいときに便利です。
5. fallthroughで次のcaseも実行できる
Go言語では、通常はcaseが一致したらそのブロックだけ実行して終了しますが、fallthroughを使うと、次のcaseの処理も続けて実行できます。
grade := "B"
switch grade {
case "A":
fmt.Println("とても良いです")
fallthrough
case "B":
fmt.Println("良いです")
fallthrough
case "C":
fmt.Println("普通です")
default:
fmt.Println("評価外です")
}
この例では、gradeが「B」のとき、「良いです」「普通です」「評価外です」が順に表示されます。ちょっと特殊な使い方なので、必要なときだけ使うようにしましょう。
6. 型による分岐もできる(インターフェース型のswitch)
少し応用的な使い方ですが、Go言語では「値の型」によって処理を分けるtype switchもあります。これはinterface型に使われます。
var x interface{} = 42
switch v := x.(type) {
case int:
fmt.Println("int型です:", v)
case string:
fmt.Println("string型です:", v)
default:
fmt.Println("他の型です")
}
このように、値の型によって処理を分けたいときにもswitchが使えます。
7. switch文はGo言語の読みやすさを高める武器!
Go言語では、「コードを読みやすく・シンプルに書く」ことがとても大切にされています。そのため、if文でゴチャゴチャ書くよりも、switch文で条件を整理して書くと、他の人が読んでも理解しやすくなります。
複雑な条件もswitchを使えば、階層を深くせずにシンプルな構造になります。特に、同じような条件が続くときや、値や条件ごとに処理が変わるときには大活躍です。
プログラミング未経験の方でも、switch文をマスターすれば、より見やすいコードが書けるようになりますよ!