カテゴリ: Go言語 更新日: 2026/03/03

Go言語のswitch文の使い方!複数条件分岐の基本と応用例

Go言語のswitch文の使い方!複数条件分岐の基本と応用例
Go言語のswitch文の使い方!複数条件分岐の基本と応用例

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

生徒

「Go言語で、たくさんの条件を分けたいときって、どうやって書くんですか?」

先生

「その場合は、switch文を使うと、とてもシンプルに書けますよ。」

生徒

「switch文?それって何ですか?」

先生

「switch文は、条件によって処理を分ける命令文の一つです。if文をたくさん書くよりも、見やすくて便利ですよ。では、基本から見ていきましょう!」

1. Go言語のswitch文とは?

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

Go言語のswitch文(スイッチぶん)とは、「ある値がどれに当てはまるか」を調べて、それに応じた処理を実行するための構文です。

たとえば、「天気が晴れだったら洗濯、雨だったら傘を持つ、曇りだったら様子を見る」といったような、条件ごとに処理を分けたい場面で使います。

if文を使うこともできますが、条件がたくさんあると、コードが長くなり見づらくなります。switch文を使えば、よりスッキリと書けるのが特徴です。

2. 基本的なswitch文の書き方

2. 基本的なswitch文の書き方
2. 基本的なswitch文の書き方

Go言語でのswitch文の基本構文は、次のようになります。


switch 条件値 {
case 値1:
    // 条件値が値1と等しい場合の処理
case 値2:
    // 条件値が値2と等しい場合の処理
default:
    // どの条件にも当てはまらない場合の処理
}

defaultは「それ以外」の場合に使うもので、省略することもできます。

3. 実際のサンプル:曜日に応じたメッセージを出す

3. 実際のサンプル:曜日に応じたメッセージを出す
3. 実際のサンプル:曜日に応じたメッセージを出す

具体的な例で、Go言語のswitch文の使い方を見てみましょう。次のコードは、曜日によって異なるメッセージを表示するプログラムです。


package main

import "fmt"

func main() {
    day := "火曜日"

    switch day {
    case "月曜日":
        fmt.Println("週の始まりですね!")
    case "火曜日":
        fmt.Println("まだ火曜日、頑張りましょう!")
    case "水曜日":
        fmt.Println("週の真ん中、水曜日です。")
    case "木曜日":
        fmt.Println("もう少しで金曜日!")
    case "金曜日":
        fmt.Println("やっと金曜日!")
    default:
        fmt.Println("週末ですね!")
    }
}

まだ火曜日、頑張りましょう!

switch dayと書くことで、変数dayの値に応じて、適切なcaseを選びます。

4. 複数の値を1つのcaseで扱う

4. 複数の値を1つのcaseで扱う
4. 複数の値を1つのcaseで扱う

Go言語では、1つのcaseに複数の値をカンマで区切って書くことができます。たとえば、土曜日と日曜日をまとめて処理したいときに便利です。


switch day {
case "土曜日", "日曜日":
    fmt.Println("週末です!ゆっくり休みましょう。")
default:
    fmt.Println("平日です。お仕事頑張りましょう。")
}

平日です。お仕事頑張りましょう。

このように、似たような条件をまとめて扱えるのがswitch文の強みです。

5. 条件式を使ったswitch文

5. 条件式を使ったswitch文
5. 条件式を使ったswitch文

Go言語のswitch文は、単なる値の比較だけでなく、条件式を使って書くこともできます。つまり、switchの後ろに値を書かずに、各caseで比較式を書く方法です。


score := 85

switch {
case score >= 90:
    fmt.Println("素晴らしい!Aランクです。")
case score >= 70:
    fmt.Println("よくできました!Bランクです。")
case score >= 50:
    fmt.Println("合格です。Cランクです。")
default:
    fmt.Println("不合格です。頑張りましょう。")
}

よくできました!Bランクです。

このようにswitch文に値を書かないスタイルでは、caseごとに自由な条件式が書けるので、より柔軟な使い方ができます。

6. breakは不要!Go言語のswitch文の特徴

6. breakは不要!Go言語のswitch文の特徴
6. breakは不要!Go言語のswitch文の特徴

Go言語のswitch文では、他のプログラミング言語のようにbreakを明示的に書く必要がありません。各caseにマッチすると、その中のコードだけを実行して、switch文の外へ自動的に抜けます。

つまり、書き忘れによるミスが起こりにくく、初心者にも優しい仕様になっています。

7. switch文でfallthroughを使う方法

7. switch文でfallthroughを使う方法
7. switch文でfallthroughを使う方法

ただし、どうしても次のcaseの処理も続けて実行したい場合は、fallthrough(フォールスルー)というキーワードを使います。

これは特殊な使い方で、使い方を間違えるとバグの原因になることもあるので、初心者のうちはあまり使わない方が安全ですが、知識として知っておくとよいでしょう。


number := 2

switch number {
case 1:
    fmt.Println("One")
case 2:
    fmt.Println("Two")
    fallthrough
case 3:
    fmt.Println("Three")
}

Two
Three

このように、fallthroughを使うと、次のcaseの処理まで実行されるようになります。

8. switch文は初心者にも優しい

8. switch文は初心者にも優しい
8. switch文は初心者にも優しい

Go言語のswitch文は、if文よりも読みやすく、条件がたくさんある場合でもすっきり書けるのが特徴です。また、breakの書き忘れがないため、初心者がミスしにくく、安全にプログラムを組むことができます。

複数の値をまとめたり、条件式を使ったりと、さまざまな応用も可能なので、ぜひ活用してみてください。

まとめ

まとめ
まとめ

Go言語のswitch文は、条件分岐をすっきり整理して書けるとても便利な構文です。ひとつの値に対して複数の条件を分けて判断したいとき、switch文を使うと読みやすさが大きく向上します。特に初心者にとって、長く続くif文よりも視覚的に理解しやすいという点が魅力です。さらに、Go言語のswitch文はbreakを書かなくても自動的に分岐から抜けるという特性があり、プログラム全体の見通しも良くなります。条件が多く並ぶ場面でも整った形で処理を記述できるため、複雑な判定が必要なロジックにおいて重要な役割を担います。加えて、複数の値をひとつのcaseにまとめたり、条件式を使って柔軟な分岐を書いたりする機能も備わっているため、実践的な場面でも広く活用できます。 また、fallthroughを使うことで意図的に次の条件へ処理を進めることもできるため、特定の状況を連続的に処理したいときに応用できます。ただし、この機能は使い方を誤ると予期しない結果を招くことがあるため、慎重に扱う必要があります。多くの処理が重なりやすいアプリケーション開発では、switch文を適切に使い分けることで、安全で読みやすく、保守しやすいコードへとつなげることができます。Go言語におけるswitch文は、シンプルでありながら強力な構文であり、さまざまな場面で役立つ基本要素として覚えておくと良いでしょう。

サンプルプログラム:状態ごとの処理をまとめる例

状態に応じたメッセージを表示する簡単な例を通して、switch文の応用的な使い方を確認してみましょう。


package main

import "fmt"

func main() {
    status := "processing"

    switch status {
    case "init":
        fmt.Println("初期化しています")
    case "processing", "running":
        fmt.Println("処理を実行中です")
    case "completed":
        fmt.Println("処理が完了しました")
    default:
        fmt.Println("不明な状態です")
    }
}

この例では複数の状態をひとつのcaseにまとめて処理しているため、条件に応じて柔軟にメッセージを変更することができます。同じ動作をする状態が複数ある場合、このようにまとめることでコードがすっきりし、読み手の負担も大幅に軽減されます。Go言語のswitch文は、複数の比較や条件式を伴うロジックの整理にも役立つため、小さなプログラムから本格的なアプリケーションまで幅広く使える実用的な構文といえます。

先生と生徒の振り返り会話

生徒

「今日のswitch文の話を聞いて、条件分岐ってこんなに整理できるんですね。if文が長くなって困っていたので助かりました。」

先生

「そうですね。Go言語のswitch文は読みやすさが大きな特徴なんです。特に複数の条件をまとめるときにはとても役に立ちますよ。」

生徒

「値をまとめたり、条件式を書いたりできるのも便利だと思いました。fallthroughは慎重に使ったほうがいいというのも覚えておきます。」

先生

「その通りです。まずは基本をしっかり使いこなして、必要になったときに応用的な機能を取り入れてみるといいでしょう。実際の開発でもswitch文はよく登場しますから、今のうちに慣れておくと後で役立ちますよ。」

生徒

「今日はよく理解できました!これなら複雑な条件も整理して書けそうです。もっと書いて練習してみます!」

Go言語を基礎からスッキリ学びたい人や、 文法だけでなく「実用的な使い方」まで押さえたい人には、 定番の入門書がこちらです。

基礎からわかるGo言語をAmazonで見る

※ Amazon広告リンク

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Go言語のswitch文とは何ですか?

Go言語のswitch文は、ある値に対して複数の条件を分岐させるための構文で、複雑な条件分岐をif文よりもシンプルに書けるのが特徴です。

Go言語でswitch文を使うメリットは何ですか?

switch文を使うことで、複数の条件をわかりやすく整理でき、コードの可読性が向上します。if文を多用すると長くなりますが、switchならスッキリ書けます。
関連セミナーのご案内

【超入門】ゼロから始めるGo言語プログラミング:最速で「動くアプリ」を作るマンツーマン指導

「プログラミングの仕組み」が根本からわかる。Go言語でバックエンド開発の第一歩を。

本講座を受講することで、単なる文法の暗記ではなく、「プログラムがコンピュータの中でどう動いているか」という本質的な理解につながります。シンプルながら強力なGo言語(Golang)を通じて、現代のバックエンドエンジニアに求められる基礎体力を最短距離で身につけます。

具体的な開発内容と環境

【つくるもの】
ターミナル(黒い画面)上で動作する「対話型計算プログラム」や、データを整理して表示する「ミニ・ツール」をゼロから作成します。自分の書いたコードが形になる感動を体験してください。

【開発環境】
プロの現場でシェアNo.1のVisual Studio Code (VS Code)を使用します。インストールから日本語化、Go言語用の拡張機能設定まで、現場基準の環境を一緒に構築します。

この60分で得られる3つの理解

1. 環境構築の完全な理解

「なぜ動くのか」という設定の仕組みを理解し、今後の独学で詰まらない土台を作ります。

2. Go言語の基本構造(変数・型)

データの種類やメモリの概念など、他言語にも通じるプログラミングの本質を学びます。

3. 読みやすいコードの書き方

ただ動くだけでなく、誰が見ても分かりやすい「綺麗なコード」を書くための考え方を伝授します。

※本講座は、将来的にバックエンドエンジニアクラウドインフラに興味がある未経験者のためのエントリー講座です。マンツーマン形式により、あなたの理解度に合わせて進行します。

セミナー画像

初めてのGo言語を一緒に学びましょう!

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のwhile的なforループの使い方!条件式ループの基本を解説
New2
Go言語
Go言語プログラムの実行方法まとめ!VSCode・ターミナルでの実行手順を解説
New3
Swift
Swift意味とは?プログラミング言語・金融・鳥の違いを徹底解説
New4
Swift
Swift 戻り値の扱い方と複数戻り値の返し方|初心者でも分かる関数の基本
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語でリダイレクト処理を行う方法(http.Redirect)を初心者向けに解説
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.5
Java&Spring記事人気No5
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.6
Java&Spring記事人気No6
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.7
Java&Spring記事人気No7
Go言語
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.8
Java&Spring記事人気No8
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説