コース一覧
    Go基礎:制御構文
    Goのswitch

    Go基礎:制御構文

    Goの分岐、反復、関数、エラー処理を体系的に学ぶ基礎コースです。

    1
    制御構文(forしかない世界)
    01. Goのif15分
    02. forしかない世界15分
    03. forの七変化15分
    04. Goのswitch15分
    05. 定番: FizzBuzz15分
    06. ループで集計15分
    07. つくる: 商品集計20分
    08. 第3章クイズ10分
    2
    関数とエラー処理
    01. funcで関数を作る15分
    02. 複数戻り値(Goならでは)15分
    03. if err != nil(Goの心臓)15分
    04. エラーを作る15分
    05. deferで後始末15分
    06. つくる: 検証つき関数群20分
    07. 第4章クイズ10分

    Goのswitch

    break を書かなくてよい

    Go

    switch status {
    case 0:
    	return "下書き"
    case 1:
    	return "販売中"
    case 2:
    	return "売切れ"
    }

    他の言語の switch は、case の最後に break を書かないと次の case に落ちてしまいます。書き忘れが定番のバグでした。

    Go は逆にしています。当たった case を実行したら、そこで抜けます。break は要りません。

    default

    どの case にも当たらなかったときは default です。

    Go

    switch status {
    case 0:
    	return "下書き"
    default:
    	return "不明"
    }

    複数の値をまとめる

    カンマで並べると、1つの case にまとめられます。

    Go

    switch status {
    case 0, 3:
    	return "未公開"
    case 1:
    	return "販売中"
    }

    他の言語で case 0: と case 3: を続けて書いていたのが、この形になります。

    条件を書く switch

    Go の switch には、値ではなく条件を並べる書き方があります。

    Go

    switch {
    case price < 1000:
    	return "お手頃"
    case price < 10000:
    	return "標準"
    default:
    	return "高額"
    }

    switch の後ろに何も書かず、case に条件を並べます。上から順に見て、最初に真になったものを実行します。

    前のレッスンで if と else if を並べた価格帯の判定は、この形で書き直せます。縦に揃うぶん、条件が3つ以上あるときはこちらのほうが読みやすくなります。

    どちらを使うか

    プレーンテキスト

    1つの値を何かと比べる      switch status {
    条件が3つ以上並ぶ          switch {
    条件が1つか2つ            if で足りる

    迷ったら if から書き始めて、3つ目が出てきた時点で switch に直す、という順番で構いません。

    要件

    1. "small" は重さで分ける。1000g 未満なら ネコポス、1000g 以上なら 宅配便
    2. "medium" と "large" は重さによらず 宅配便。カンマで1つの case にまとめる
    3. そのどれでもない大きさは 取扱不可

    ヒント

    `switch size {` で大きさを分け、`case "small":` の中で重さを `if` で判定します

    `case "medium", "large":` とカンマで並べると、2つを1つの case にまとめられます

    1000g ちょうどは「1000g 以上」なので宅配便です。`< 1000` と書けば境界を間違えません

    生田 陸人
    監修生田 陸人
    ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
    編集 ゆめさく編集部·公開 2026/08/10

    関連レッスン

    • 定番: FizzBuzz

      判定とループを組み合わせ、Go版のFizzBuzzを自力で書けるようになります。

    • ループで集計

      繰り返しの中で値を累積し、出品価格の合計と平均を計算できるようになります。

    • つくる: 商品集計

      第3章の知識を統合し、売切れを除いた条件付き集計を書けるようになります。

    • 第3章クイズ

      if、for、switch、集計についての理解を確認します。

    main.go
    エディタを読み込んでいます

    メモ

    Goのswitch

    ⌘S で保存