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

C言語の多重if文と入れ子構造を徹底解説!初心者でも理解できる条件分岐プログラミング

C言語の多重if文と入れ子構造の注意点
C言語の多重if文と入れ子構造の注意点

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

生徒

「C言語のif文は少しわかってきたのですが、ifの中にまたifを書くことはできるんですか?」

先生

「できますよ。C言語ではif文の中にさらにif文を書くことができます。これを多重if文入れ子構造と呼びます。」

生徒

「入れ子構造ってどういう意味ですか?」

先生

「箱の中にさらに箱が入っているような構造です。条件の中にさらに条件を作ることで、より細かい判断ができるようになります。」

生徒

「なるほど!条件を段階的にチェックするようなイメージですね。」

先生

「その通りです。それではC言語の多重if文と入れ子構造の書き方や注意点を詳しく見ていきましょう。」

1. C言語の多重if文とは?

1. C言語の多重if文とは?
1. C言語の多重if文とは?

C言語の多重if文とは、if文の中にさらにif文を書くことで、条件を段階的に判定するプログラム構造のことです。

例えば「点数が合格点以上か」を確認し、さらに「優秀な点数かどうか」を判断するような場面では、一つの条件だけでは判断できません。このようなときに多重if文を使うと、複数の条件を順番にチェックすることができます。

プログラミングでは、このように条件を段階的に確認する処理がとても重要になります。C言語の条件分岐を理解するためにも、多重if文の仕組みをしっかり理解しておきましょう。

2. 多重if文の基本的な書き方

2. 多重if文の基本的な書き方
2. 多重if文の基本的な書き方

C言語の多重if文は、次のように書きます。if文のブロックの中にさらにif文を書くことで実現できます。


#include <stdio.h>

int main()
{
    int score = 85;

    if(score >= 60)
    {
        if(score >= 80)
        {
            printf("とても良い成績です\n");
        }
    }

    return 0;
}

このプログラムでは、まず60点以上かどうかを確認しています。その条件が成立した場合のみ、次の条件である80点以上かをチェックします。


とても良い成績です

このように多重if文を使うことで、条件を細かく分けてプログラムを作ることができます。

3. 入れ子構造(ネスト)とは?

3. 入れ子構造(ネスト)とは?
3. 入れ子構造(ネスト)とは?

多重if文の構造は入れ子構造

プログラムでも同じように、if文の中にif文があるとき、それは入れ子構造になっています。

例えば、次のプログラムは年齢と学生かどうかを確認する入れ子構造の例です。


#include <stdio.h>

int main()
{
    int age = 18;
    int student = 1;

    if(age >= 18)
    {
        if(student == 1)
        {
            printf("成人の学生です\n");
        }
    }

    return 0;
}

ここでは、まず年齢が18歳以上学生かどうか

このように、条件を順番に確認していく仕組みが入れ子構造です。

4. elseを組み合わせた多重if文

4. elseを組み合わせた多重if文
4. elseを組み合わせた多重if文

多重if文ではelseを組み合わせることで、条件に応じた処理をさらに増やすことができます。

例えば、点数によって結果を変えるプログラムは次のように書けます。


#include <stdio.h>

int main()
{
    int score = 50;

    if(score >= 60)
    {
        if(score >= 90)
        {
            printf("優秀です\n");
        }
        else
        {
            printf("合格です\n");
        }
    }
    else
    {
        printf("不合格です\n");
    }

    return 0;
}

不合格です

このようにelseを使うことで、条件が成立しなかった場合の処理も書くことができます。これにより、より実用的な条件分岐プログラムを作ることができます。

5. 多重if文を使うときの注意点

5. 多重if文を使うときの注意点
5. 多重if文を使うときの注意点

C言語で多重if文を書くときには、いくつか注意するポイントがあります。

まず重要なのはインデント

次に注意するのは条件の順番

例えば、次のようなコードでは順番が重要になります。


#include <stdio.h>

int main()
{
    int number = 5;

    if(number > 0)
    {
        if(number % 2 == 0)
        {
            printf("正の偶数です\n");
        }
        else
        {
            printf("正の奇数です\n");
        }
    }

    return 0;
}

ここでは最初に「正の数かどうか」を確認してから、「偶数か奇数か」を判断しています。このように条件の順番を意識することが大切です。

6. 多重if文を使いすぎないことも大切

6. 多重if文を使いすぎないことも大切
6. 多重if文を使いすぎないことも大切

多重if文はとても便利ですが、あまりにも入れ子が深くなるとプログラムが読みにくくなります。

例えば、if文が何段にも重なってしまうと、どの条件がどこで終わっているのか分かりにくくなります。これを可読性

読みやすいプログラムを書くことは、プログラミングではとても重要です。将来、自分がプログラムを修正するときや、他の人がプログラムを見るときにも理解しやすくなるからです。

そのため、C言語で多重if文を使うときは、必要な範囲だけにして、できるだけシンプルな構造を心がけるようにしましょう。

7. 多重if文が活躍する場面

7. 多重if文が活躍する場面
7. 多重if文が活躍する場面

C言語の多重if文は、実際のプログラムでもよく使われます。特に、ユーザーの入力や条件によって処理を変える場面で活躍します。

例えば次のような処理があります。

  • ログイン判定
  • ゲームの条件分岐
  • 年齢による制限
  • 点数による評価

これらの処理では、単純な条件だけではなく、複数の条件を順番に判断する必要があります。そのため、C言語の多重if文と入れ子構造は、プログラミングの基本テクニックとして非常に重要な役割を持っています。

初心者のうちから多重if文の仕組みを理解しておくと、条件分岐プログラムを自由に作れるようになります。

まとめ

まとめ
まとめ

この記事では、C言語の条件分岐の中でも特に重要な多重if文入れ子構造(ネスト)について詳しく学びました。C言語のプログラミングでは、単純な条件分岐だけでなく、複数の条件を段階的に判定する処理が頻繁に登場します。そのときに活躍するのが、多重if文と呼ばれる構造です。

多重if文とは、if文の中にさらにif文を書くことで、条件を順番に確認していくプログラムの書き方です。プログラムは上から順番に実行されるため、最初の条件が成立した場合のみ、次の条件をチェックすることができます。この仕組みによって、より細かい判断や複雑な条件分岐を実現することができます。

例えば、C言語のプログラムで「年齢を確認してから学生かどうかを判断する」「点数が合格点以上かを確認してから優秀かどうかを判断する」といった処理を作る場合には、単純なif文だけでは十分ではありません。このようなときに、多重if文の入れ子構造を使うことで、条件を段階的にチェックすることが可能になります。

入れ子構造とは、プログラムの中にさらに同じ構造を入れる書き方のことです。C言語では、if文の中にif文を書くことで入れ子構造を作ることができます。このような構造はプログラミングの世界では非常によく使われる基本テクニックです。条件分岐だけでなく、ループ処理(for文やwhile文)でも入れ子構造が使われることがあります。

ただし、多重if文を使うときには注意点もあります。特に重要なのはインデント条件の順番です。インデントを適切に付けることで、どのif文の中にどの処理があるのかが分かりやすくなります。インデントがないコードは読みにくくなり、バグの原因になることもあります。そのため、プログラムを書くときは見やすい構造を意識することが大切です。

また、条件の順番も重要なポイントです。最初にチェックする条件と、その後に確認する条件の順序が正しくないと、意図した結果が得られないことがあります。例えば「正の数かどうか」を確認する前に「偶数か奇数か」を判定してしまうと、負の数も含まれてしまう可能性があります。このような問題を防ぐためにも、条件の流れをしっかり考えてプログラムを書く必要があります。

さらに、C言語の多重if文ではelseelse ifを組み合わせることで、より柔軟な条件分岐を作ることができます。これによって、条件に応じて異なる処理を実行するプログラムを作ることが可能になります。多くの実用的なプログラムでは、このような条件分岐の組み合わせが使われています。

しかし、入れ子構造が深くなりすぎると、プログラムが読みにくくなってしまうことがあります。if文が何段も重なったコードは理解が難しくなり、修正や保守の作業が大変になります。このような状態は、プログラムの可読性が低いといわれます。可読性とは、コードの読みやすさや理解のしやすさのことです。

プログラミングでは、単に動くプログラムを書くことだけではなく、読みやすいコードを書くことも非常に重要です。将来、自分がコードを修正する場合や、他のプログラマーがコードを読む場合にも理解しやすくなるからです。そのため、多重if文を使うときは、必要以上に深い入れ子構造を作らないように注意しましょう。

C言語の多重if文と入れ子構造は、ログイン判定、ゲームの条件分岐、年齢制限のチェック、点数評価システムなど、多くのプログラムで使われています。これらの基本をしっかり理解しておくことで、より複雑なプログラムを作れるようになります。初心者のうちから条件分岐の考え方を身につけることで、プログラミングの理解が大きく深まります。

理解を深めるサンプルプログラム

ここでは、多重if文を使った簡単なサンプルプログラムを確認してみましょう。このプログラムでは、数値が正の数かどうかを確認し、そのあとに偶数か奇数かを判定しています。


#include <stdio.h>

int main()
{
    int number = 12;

    if(number > 0)
    {
        if(number % 2 == 0)
        {
            printf("正の偶数です\n");
        }
        else
        {
            printf("正の奇数です\n");
        }
    }
    else
    {
        printf("正の数ではありません\n");
    }

    return 0;
}

このプログラムでは、まず最初に数値が正の数かどうかを確認しています。もし正の数であれば、次のif文で偶数か奇数かを判定します。これが多重if文の典型的な使い方です。


正の偶数です

このように、C言語の多重if文を使うことで、複数の条件を順番に確認するプログラムを作ることができます。条件分岐の理解は、C言語プログラミングの基礎力を高めるうえで非常に重要です。if文、else文、else if文、そして入れ子構造をしっかり理解することで、さまざまな条件処理を自由に作れるようになります。

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

生徒

「今日はC言語の多重if文と入れ子構造について勉強しました。if文の中にさらにif文を書くことで、条件を段階的に確認できるということが分かりました。」

先生

「その通りです。C言語の条件分岐では、単純なif文だけでなく、多重if文を使って複数の条件を順番にチェックすることがよくあります。プログラムの判断処理を作るうえで、とても重要な基本技術ですね。」

生徒

「入れ子構造という言葉も理解できました。箱の中に箱が入っているようなイメージで、条件の中にさらに条件を書くことなんですね。」

先生

「はい、そのイメージでとても分かりやすいです。プログラムの世界では、この入れ子構造はとてもよく使われます。if文だけでなく、for文やwhile文でも入れ子構造が登場します。」

生徒

「ただ、if文が増えすぎるとコードが読みにくくなるという話もありましたね。」

先生

「そうですね。入れ子が深くなりすぎると、どこからどこまでが同じ条件なのか分かりにくくなります。そのため、インデントをきちんと付けて、できるだけ分かりやすい構造で書くことが大切です。」

生徒

「条件の順番も重要だと分かりました。先に確認する条件をしっかり考えないと、プログラムの結果が変わってしまうこともあるんですね。」

先生

「その通りです。C言語の条件分岐では、どの条件を最初に確認するのかを考えることがとても大切です。これができるようになると、実用的なプログラムを作れるようになります。」

生徒

「多重if文と入れ子構造が理解できたので、これからは条件分岐のプログラムをもっと作ってみたいと思います。」

先生

「とても良いですね。実際にC言語のプログラムを書いて練習することで、条件分岐の理解がさらに深まります。ぜひ色々なパターンのif文や多重if文を試してみてください。」

カテゴリの一覧へ
新着記事
New1
C++
C++の値渡し(pass by value)とは?仕組みと使い方を初心者向けに徹底解説
New2
C++
C++とポインタ・参照の重要性をやさしく解説!初心者でも理解できる仕組みと使い方
New3
C++
GCCでC++開発を始める方法!初心者向け完全ガイド
New4
Rust
Rustの式(Expression)と文(Statement)の違いを徹底解説!初心者が迷うセミコロンの秘密
人気記事
No.1
Java&Spring記事人気No1
C言語
C言語を学ぶ初心者におすすめの環境構築手順【2025年版】
No.2
Java&Spring記事人気No2
C++
MinGWとMSYS2でWindowsにC++環境を構築する方法を徹底解説!初心者でもできるセットアップガイド
No.3
Java&Spring記事人気No3
C言語
LinuxでC言語開発環境を構築する方法【GCCとMakefileの基本】
No.4
Java&Spring記事人気No4
C言語
C言語のソースコードとヘッダファイルの役割とは?初心者向けにわかりやすく解説!
No.5
Java&Spring記事人気No5
C言語
Visual Studio CodeでC言語を実行する方法【拡張機能の設定と実行手順】
No.6
Java&Spring記事人気No6
C言語
C言語開発でよく使われるエディタとIDEランキング【初心者向け完全ガイド】
No.7
Java&Spring記事人気No7
C++
C++の主要な実装をわかりやすく解説!GCC・Clang・MSVCの違いと特徴
No.8
Java&Spring記事人気No8
C言語
C言語の標準規格(ANSI C, C99, C11, C18)をわかりやすく解説!初心者向け完全ガイド