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

Go言語で条件式をネストする方法!多段条件分岐の基本を学ぼう

Go言語で条件式をネストする方法!多段条件分岐の基本を学ぼう
Go言語で条件式をネストする方法!多段条件分岐の基本を学ぼう

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

生徒

「Go言語で条件をたくさんチェックしたいときって、どうやればいいんですか?」

先生

「それは『ネストされた条件式』という形を使えばできますよ。たとえば、『朝で、晴れていて、傘を持っていない』というように、複数の条件を順番にチェックできます。」

生徒

「なるほど…でも実際にはどう書くんですか?」

先生

「それでは、Go言語でのネスト条件式の基本を一緒に見ていきましょう!」

1. ネストされた条件式とは?

1. ネストされた条件式とは?
1. ネストされた条件式とは?

Go言語で「ネスト」とは、条件文(if文)の中にさらに別のif文を入れ子にすることです。つまり、「ある条件の中で、さらに別の条件をチェックしたい」という場面で使われます。

たとえば、ある生徒が試験に合格したかどうかをチェックする場合に、「点数が60点以上」かつ「提出物が出ているか」など、複数の条件があるときにネストが役立ちます。

2. Go言語での基本的なif文のネスト構造

2. Go言語での基本的なif文のネスト構造
2. Go言語での基本的なif文のネスト構造

まずはシンプルな例を見てみましょう。これは点数が60点以上で、さらに提出物が出されている場合に「合格」と表示するコードです。


package main

import "fmt"

func main() {
    score := 75
    submitted := true

    if score >= 60 {
        if submitted {
            fmt.Println("合格です!")
        }
    }
}

このコードでは、まずscoreが60以上かどうかをチェックし、その条件の中でsubmitted(提出したかどうか)もチェックしています。

3. 実行結果を確認してみよう

3. 実行結果を確認してみよう
3. 実行結果を確認してみよう

このプログラムを実行すると、次のような結果が表示されます。


合格です!

4. elseを使ったネストの応用

4. elseを使ったネストの応用
4. elseを使ったネストの応用

ifだけでなく、elseelse ifもネストの中で使うことができます。次の例は、点数や提出物の有無に応じて異なるメッセージを出力するコードです。


package main

import "fmt"

func main() {
    score := 55
    submitted := false

    if score >= 60 {
        if submitted {
            fmt.Println("合格です!")
        } else {
            fmt.Println("点数は合格ですが、提出物がありません。")
        }
    } else {
        fmt.Println("不合格です。")
    }
}

このようにelseの中にさらに条件を書くことで、細かい分岐ができます。

5. ネストを使うときの注意点

5. ネストを使うときの注意点
5. ネストを使うときの注意点

ネストされたif文は便利ですが、あまりにも深くしすぎると読みづらくなってしまいます。プログラムを書くときは、「人が読んで理解しやすいか?」という視点も大事です。

ネストが3段以上になるようなときは、別の方法を考えたほうが良い場合もあります。たとえば、複数の条件をif 条件1 && 条件2のようにまとめて書く方法もあります。

6. 複数の条件をまとめて書く方法

6. 複数の条件をまとめて書く方法
6. 複数の条件をまとめて書く方法

ネストを減らすために、条件をひとつにまとめて書く方法もあります。次のように書くと、シンプルになります。


if score >= 60 && submitted {
    fmt.Println("合格です!")
}

このように、論理演算子&&(アンド)を使うと、ネストせずに複数の条件を同時にチェックできます。

7. ネスト条件式の具体例:お弁当の判定

7. ネスト条件式の具体例:お弁当の判定
7. ネスト条件式の具体例:お弁当の判定

日常的な例として「お弁当を持ってきたか?」を判定するプログラムを考えてみましょう。「今日は平日で、時間がある場合にお弁当を作る」という設定です。


package main

import "fmt"

func main() {
    isWeekday := true
    hasTime := true

    if isWeekday {
        if hasTime {
            fmt.Println("お弁当を作ります。")
        } else {
            fmt.Println("時間がないのでコンビニに行きます。")
        }
    } else {
        fmt.Println("今日はお休みです。")
    }
}

このように、ネストされたifを使うと、複雑な状況でも柔軟に判断ができます。

8. ネストされた条件式の活用場面

8. ネストされた条件式の活用場面
8. ネストされた条件式の活用場面

ネストされたif文は、以下のような場面で役立ちます。

  • ユーザーがログインしているか確認した後に、権限があるかを調べたいとき
  • ある商品の在庫があるかを確認し、そのあと支払い方法に応じて処理を変えるとき
  • 入力された情報が正しいかチェックしてから、処理を進めたいとき

このように「まずAをチェックしてから、Bを判断する」という処理は日常でもよくあります。それをプログラムにするのがネスト条件です。

9. おさらい:ネストを使ったコードの書き方

9. おさらい:ネストを使ったコードの書き方
9. おさらい:ネストを使ったコードの書き方

ネストされた条件式を使うには、まずifの基本構文をしっかり理解しましょう。そして、必要に応じてifの中にさらにifを書くことで、順番に条件を判断することができます。

コードを読みやすくするために、適切なインデント(字下げ)も忘れずに行いましょう。

まとめ

まとめ
まとめ

Go言語で条件式をネストする方法は、複数の条件を段階的に確認しながら処理を進めたい場面で非常に役立ちます。今回の記事では、ネストされたif文の基本構造や、条件が複雑になるケースでの実用的な書き方を順を追って学んできました。ネストを使うと「まず前提となる条件を満たしているか」を確認し、そのあとで「さらに細かい条件」を判断するという自然な流れをコードで表現できます。特に、点数判定や提出物の確認、晴れかどうかの天気条件、さらにはお弁当を作るかどうかの生活的な例など、身近なシチュエーションを通してコードのイメージがつきやすくなったのではないでしょうか。

ただし、ネストされた条件式は便利な半面、深くなりすぎると可読性が低下してしまうため注意が必要です。条件がいくつも重なり、「もし〜なら、その中でさらにもし〜なら」と続く構造は、読み手にとって理解しづらいコードにつながることがあります。そのため、条件を論理演算子を使ってまとめる方法や、不要なネストを避ける工夫も合わせて理解することが大切です。論理演算子「&&」「||」を使ってシンプルに書ける場合には、ネストを減らすことで処理の見通しが良くなります。

また、ネストされた条件式は、実務においても頻繁に用いられるテクニックです。ユーザーログインのチェック、権限判定、在庫や予約の条件確認、入力された値が正しいかどうかのバリデーションなど、多くのケースで活躍します。こうした複数の判定を段階的に行う処理は、自然とネスト構造になりやすく、Go言語のif文が非常に有効です。今回の記事全体を通して、ネストされた条件式の理解が深まり、実際のコードを書くときに役立つ基礎力が身についたはずです。ここでは、さらに理解を深めるためのサンプルコードをもうひとつ紹介し、実際に手を動かす際の参考になるよう追加しています。

追加サンプルコード:時間帯と天気による行動判定


package main

import "fmt"

func main() {
    isMorning := true
    isSunny := false
    hasUmbrella := true

    if isMorning {
        if isSunny {
            fmt.Println("散歩に出かけます。")
        } else {
            if hasUmbrella {
                fmt.Println("傘を持って外に出ます。")
            } else {
                fmt.Println("雨なので家で過ごします。")
            }
        }
    } else {
        fmt.Println("朝ではないので予定は未定です。")
    }
}

このサンプルでは、「朝かどうか」を最初にチェックし、次に「天気」、さらに「傘の有無」を確認しています。段階的に条件を判断できるため、自然な流れで処理を記述できるのがネスト条件式の最大の魅力です。天気や時間など複数の状況が絡む判断は、プログラムに落とし込むとネストによってわかりやすく整理できます。特に、実務でも条件分岐が多い処理は数多く存在し、Go言語でのシンプルな構文は学び始めの段階でも扱いやすい特徴があります。

条件が増えるほどネストが深くなりがちですが、読みやすさを保つためには、「この条件は本当にネストする必要があるのか?」という視点も重要です。ネストを少し整理するだけで、プログラム全体の印象は大きく変わります。論理演算子を使う、関数に切り出す、フラグ変数を整理するなど、可読性と拡張性を意識した工夫を取り入れることも、Go言語を書くうえで欠かせないポイントです。コードは書いて終わりではなく、他の人が読んでも理解しやすい状態にすることが求められます。

この記事で紹介した内容を参考に、ネストされた条件式を使ったコードを自分で書いてみることで、より実践的な理解が深まります。条件が二つ三つと重なる場合も多く、そうした複雑な判定を自然な書き方で表現する力は、Go言語のスキルを伸ばすうえでとても重要です。繰り返し書いていくことで、自然と判断の流れや処理の優先順位が分かるようになるので、学習の積み重ねが必ず役立ちます。

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

生徒

「ネストされた条件式って難しそうに見えましたが、順番に条件をチェックするだけだと思うと分かりやすかったです!」

先生

「そうですね。段階的な判断を書く場面ではとても便利なので、実際にコードを書きながら慣れていくと理解が深まりますよ。」

生徒

「天気の例みたいに、身近な場面をコードにするとイメージが湧きやすいですね!」

先生

「その通りです。身近な例で練習すると頭に入りやすいですし、コードの流れも自然に覚えられます。ネストの使い過ぎに注意しつつ活用していきましょう。」

生徒

「はい!これから条件が複雑なプログラムでも、自信を持って書けるようになりたいです。」

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

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

※ Amazon広告リンク

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

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

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

Go言語でネストされた条件式とは何ですか?

Go言語におけるネストされた条件式とは、if文の中にさらに別のif文を書くことで、複数の条件を段階的にチェックする方法を指します。たとえば「点数が60点以上で、かつ提出物が出ているか」のような複数条件を順番に判断したいときに使われます。

Go言語でネストされたif文を書くときの基本構造は?

Go言語では、まず最初のif文で条件をチェックし、その中に次のif文を入れます。これにより、条件Aが成立したときにのみ、条件Bをさらにチェックするという多段階の条件分岐が可能になります。
関連セミナーのご案内

【超入門】ゼロから始める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のログ出力方法を完全ガイド!LogcatとTimberでトラブルシューティング