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

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言語の関数でエラーハンドリングする基本的な方法
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)とは?便利な特徴と使い方を初心者向けにやさしく解説!