カテゴリ: C# 更新日: 2025/12/13

C#でループの中に条件分岐を書く方法!入れ子制御構造の基本

C#でループの中に条件分岐を書く方法!入れ子制御構造の基本
C#でループの中に条件分岐を書く方法!入れ子制御構造の基本

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

生徒

「C#で繰り返し処理をしている途中で、条件によって違う動きをさせることってできますか?」

先生

「はい、できますよ。C#ではループの中にif文を入れることで、条件に応じた処理を繰り返すことができます。」

生徒

「それって難しくないですか?どんな風に書くのか想像がつかなくて…」

先生

「心配いりません。とてもシンプルなので、一緒に見ていきましょう!」

1. ループとは?

1. ループとは?
1. ループとは?

ループとは、同じ処理を何回も繰り返して行うためのしくみです。たとえば、数字を1から10まで順番に表示したいときなどに使います。

C#では、for文while文foreach文などのループがあります。この記事では、代表的なfor文を使って説明します。

2. 条件分岐とは?

2. 条件分岐とは?
2. 条件分岐とは?

条件分岐とは、「ある条件に合っているかどうか」によって処理を変えることです。C#では、if文を使って条件分岐を行います。

たとえば、「もしスコアが60点以上だったら合格と表示する」といった処理ができます。

3. ループの中にif文を入れるとは?

3. ループの中にif文を入れるとは?
3. ループの中にif文を入れるとは?

for文などのループの中に、if文を組み合わせることで、繰り返しの中で条件に応じた処理を行うことができます。これを「入れ子(ネスト)構造」といいます。

たとえば、「1から10までの数字のうち、偶数だけを表示したい」といった処理に使えます。

4. 具体的なコード例を見てみよう

4. 具体的なコード例を見てみよう
4. 具体的なコード例を見てみよう

以下は、1から10までの数字をループで回して、その中で偶数だけを表示する例です。


for (int i = 1; i <= 10; i++)
{
    if (i % 2 == 0)
    {
        Console.WriteLine(i + " は偶数です。");
    }
}

実行結果:


2 は偶数です。
4 は偶数です。
6 は偶数です。
8 は偶数です。
10 は偶数です。

5. コードの解説

5. コードの解説
5. コードの解説

for (int i = 1; i <= 10; i++)の部分は、「iを1から始めて10まで1ずつ増やしながら繰り返す」という意味です。

if (i % 2 == 0)は、「iを2で割った余りが0、つまり偶数のときに」という条件です。

このように、ループの中に条件分岐を入れることで、「繰り返しの中でも、条件を見て処理を分ける」ということができます。

6. もっとわかりやすい例で確認しよう

6. もっとわかりやすい例で確認しよう
6. もっとわかりやすい例で確認しよう

次は、10人の生徒のテストの点数があって、60点以上なら「合格」と表示する例です。


int[] scores = { 55, 78, 62, 45, 90, 33, 70, 85, 59, 60 };

for (int i = 0; i < scores.Length; i++)
{
    if (scores[i] >= 60)
    {
        Console.WriteLine((i + 1) + "番目の生徒は合格です(" + scores[i] + "点)");
    }
}

実行結果:


2番目の生徒は合格です(78点)
3番目の生徒は合格です(62点)
5番目の生徒は合格です(90点)
7番目の生徒は合格です(70点)
8番目の生徒は合格です(85点)
10番目の生徒は合格です(60点)

7. 入れ子構造の注意点

7. 入れ子構造の注意点
7. 入れ子構造の注意点

入れ子(ネスト)が深くなりすぎると、コードが読みにくくなったり、バグの原因になったりします。

たとえば、ループの中にifがあって、さらにその中に別のifがあると、だんだん見づらくなってしまいます。

なるべく入れ子を深くしすぎず、処理を分けたり、メソッドを使って整理するのがよい方法です(今回はメソッドの説明は省略)。

8. 入れ子構造の応用アイデア

8. 入れ子構造の応用アイデア
8. 入れ子構造の応用アイデア

ループの中にif文を入れるテクニックは、いろんな場面で使えます。たとえば:

  • 複数の条件に応じて、異なるメッセージを出す
  • 条件に応じて合計点を計算する
  • 特定の条件を満たすデータだけを処理する

現実のプログラムでもとてもよく使う基本テクニックなので、しっかり身につけておきましょう。

まとめ

まとめ
まとめ

C#でループと条件分岐を組み合わせることで、実際のアプリケーションやシステム開発でも非常に応用の利く処理が書けるようになります。特にfor文やforeach文とif文を入れ子にして使うテクニックは、業務システムやゲーム開発、ウェブアプリケーションのロジック設計など、さまざまな場面で活躍します。たとえば、商品の在庫リストの中から特定の条件を満たす商品だけを表示したり、ログファイルから特定のエラーだけを抽出したりする場面では、この入れ子構造が非常に役に立ちます。

入れ子構造は便利な一方で、処理の階層が深くなりすぎると可読性が損なわれることがあります。そのため、条件が複雑な場合にはメソッドに分けて整理したり、変数名に意味を持たせたりしてコードの意図を明確にする工夫が大切です。また、条件文の内容をコメントで補足しておくことで、将来の保守性も向上します。

ループ処理と条件分岐は、プログラムの中で最もよく使われる構文のひとつです。これを自由に扱えるようになれば、データ処理や制御フローにおいて強力な武器となります。初めはシンプルな例から試して、徐々に実践的なケースに応用していくと、自然に身についていくでしょう。

たとえば、以下のようにループ内で複数の条件を分岐して処理を変えることも可能です:


int[] scores = { 95, 72, 58, 40, 87 };

for (int i = 0; i < scores.Length; i++)
{
    if (scores[i] >= 80)
    {
        Console.WriteLine((i + 1) + "番目の生徒は優秀です(" + scores[i] + "点)");
    }
    else if (scores[i] >= 60)
    {
        Console.WriteLine((i + 1) + "番目の生徒は合格です(" + scores[i] + "点)");
    }
    else
    {
        Console.WriteLine((i + 1) + "番目の生徒は再試験です(" + scores[i] + "点)");
    }
}

このように、if-else文をループ内に組み合わせることで、複数の評価基準を持つ処理を一気にこなすことができます。また、特定の条件を満たすデータだけをフィルタリングするなどの処理にも応用できます。

条件が単純なうちはif文で十分ですが、条件が複数重なる場合や、より複雑な分岐が必要な場合にはswitch文との使い分けも検討してみてください。C#では、バージョンアップに伴いswitch式も使いやすくなっており、コードの見通しを良くする助けになります。

最後に、入れ子構造は一見難しそうに感じるかもしれませんが、順序立てて書けば意外とシンプルです。むしろ、しっかり理解して活用すれば、プログラムの動きをより細かくコントロールできるようになります。今後の学習でも、繰り返し処理と条件分岐の組み合わせは頻繁に登場しますので、今回の内容をしっかりと身につけておくと安心です。

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

生徒

「ループの中に条件分岐を入れることで、いろんな場面で細かい制御ができるようになるんですね!」

先生

「その通りです。データの分類、条件ごとの処理、ユーザー入力のチェックなど、実際の開発現場でもよく使われますよ。」

生徒

「ただ、ネストが深くなりすぎると読みにくくなるってことも覚えておかないとですね…」

先生

「そうですね。必要な場面ではしっかり使いつつ、見やすく整理されたコードを書く意識を持つと、よりよいプログラマになれますよ。」

カテゴリの一覧へ
新着記事
New1
C#
C#のメモリ管理とガーベジコレクションの基礎を理解しよう
New2
C#
C#の参照型と値型の違いを初心者向けにやさしく解説!
New3
C#
C#のクエリ式とメソッド式の書き換え方を完全ガイド!LINQの2つの書き方をマスター
New4
C#
C#の戻り値にタプルを使う方法!複数の値を返すテクニック
人気記事
No.1
Java&Spring記事人気No1
C#
C#で文字列が数値か判定する方法を解説!char.IsDigitやTryParseの基本
No.2
Java&Spring記事人気No2
C#
C#のLINQでOrderByを使った並び替えを完全ガイド!初心者でもわかるソート方法
No.3
Java&Spring記事人気No3
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.4
Java&Spring記事人気No4
C#
C#のrefとoutキーワードとは?引数の参照渡しを理解しよう
No.5
Java&Spring記事人気No5
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#
C#の引数と戻り値の基本!値を受け渡し・返す仕組みを理解しよう
No.7
Java&Spring記事人気No7
C#
C#のラムダ式の書き方と構文を初心者向けに完全解説
No.8
Java&Spring記事人気No8
C#
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方