カテゴリ: Go言語 更新日: 2025/06/28

Go言語のswitchで複雑な条件分岐を整理するテクニック

Go言語のswitchで複雑な条件分岐を整理するテクニック
Go言語のswitchで複雑な条件分岐を整理するテクニック

先生と生徒の会話形式で理解しよう

生徒

「Go言語でたくさん条件があるとき、if文がごちゃごちゃしてわかりにくくなります…。何かスッキリ書く方法ってありますか?」

先生

「それなら、switch文を使うのがおすすめですよ。条件がたくさんあるときも、見やすく整理して書けます。」

生徒

「えっ、switchって何か特別な使い方があるんですか?」

先生

「はい、Go言語のswitch文は他の言語より柔軟で便利なんです。では、具体的な使い方を見てみましょう!」

1. Go言語のswitch文とは?

1. Go言語のswitch文とは?
1. Go言語のswitch文とは?

Go言語のswitch文は、複数の条件をきれいに分岐させたいときに使う制御構造です。if文を何重にも書くと、見た目もわかりにくくなってしまいますが、switch文を使えば、すっきり整理された形で条件分岐が書けます。

たとえば、「今日の曜日によってメッセージを変える」といった処理がある場合、switch文が役立ちます。

2. 基本的なswitch文の使い方

2. 基本的なswitch文の使い方
2. 基本的なswitch文の使い方

Go言語のswitch文は、次のような形で書きます。


day := "月曜日"

switch day {
case "月曜日":
    fmt.Println("週の始まりです!")
case "金曜日":
    fmt.Println("もうすぐ週末!")
default:
    fmt.Println("普通の日です。")
}

switchのあとに調べたい値を書いて、caseで条件を並べていきます。defaultはどれにも当てはまらない場合に使います。

3. 複数の値をcaseにまとめることができる

3. 複数の値をcaseにまとめることができる
3. 複数の値をcaseにまとめることができる

Go言語のswitch文は、1つのcaseに複数の値をカンマ区切りで指定できます。たとえば、次のように書けます。


switch day {
case "土曜日", "日曜日":
    fmt.Println("週末です!ゆっくり休みましょう。")
case "月曜日":
    fmt.Println("週の始まり、がんばりましょう!")
default:
    fmt.Println("平日ですね。")
}

このように書くことで、「土曜日」と「日曜日」は同じ処理にまとめられて、コードがすっきりします。

4. switchに条件式を使う方法

4. switchに条件式を使う方法
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も実行できる

5. fallthroughで次のcaseも実行できる
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)

6. 型による分岐もできる(インターフェース型のswitch)
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言語の読みやすさを高める武器!

7. switch文はGo言語の読みやすさを高める武器!
7. switch文はGo言語の読みやすさを高める武器!

Go言語では、「コードを読みやすく・シンプルに書く」ことがとても大切にされています。そのため、if文でゴチャゴチャ書くよりも、switch文で条件を整理して書くと、他の人が読んでも理解しやすくなります。

複雑な条件もswitchを使えば、階層を深くせずにシンプルな構造になります。特に、同じような条件が続くときや、値や条件ごとに処理が変わるときには大活躍です。

プログラミング未経験の方でも、switch文をマスターすれば、より見やすいコードが書けるようになりますよ!

関連記事:
カテゴリの一覧へ
新着記事
Go言語の関数でエラーハンドリングする基本的な方法
Go言語のスライス・マップ・配列をまとめて比較してみよう!初心者でもわかる使い分けの基本
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.3
Java&Spring記事人気No3
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!