カテゴリ: Go言語 更新日: 2025/12/09

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. 実行結果を確認してみよう

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


合格です!

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

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

※ Amazon広告リンク

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言語におけるネストされた条件式とは、if文の中にさらに別のif文を書くことで、複数の条件を段階的にチェックする方法を指します。たとえば「点数が60点以上で、かつ提出物が出ているか」のような複数条件を順番に判断したいときに使われます。
関連記事:
カテゴリの一覧へ
新着記事
New1
Go言語
Go言語の構造体の初期化パターンとコンストラクタ的関数の書き方を徹底解説!初心者でもわかる基本と実用例
New2
Kotlin
Kotlinの例外処理とキャンセルの連携を完全ガイド!初心者でもわかるCoroutineExceptionHandlerの使い方
New3
Go言語
Go言語のクロージャとは?関数内関数の活用例と仕組み
New4
Swift
Swiftでエラー原因を可視化!ログとトレースのベストプラクティスを初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
Kotlin
KotlinのChannelでデータをやり取りする方法を完全ガイド!初心者にもわかる非同期通信の基本
No.2
Java&Spring記事人気No2
Go言語
Go言語でのDB接続情報を環境変数で管理する方法|初心者でも安全に設定
No.3
Java&Spring記事人気No3
Kotlin
Kotlinのビルド設定エラーと解決法まとめ!初心者向けGradleトラブル対処ガイド
No.4
Java&Spring記事人気No4
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.5
Java&Spring記事人気No5
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.6
Java&Spring記事人気No6
Kotlin
Kotlinでテキスト表示・編集!初心者でもわかるTextViewとEditTextの使い方
No.7
Java&Spring記事人気No7
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.8
Java&Spring記事人気No8
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方

💻 作業効率アップに

ノートPCを縦置きしてデスクを広く。
省スペースで片づく定番スタンド

UGREEN 縦型スタンドをAmazonで見る

※ Amazon広告リンク