C#でのfor文とforeach文を使った繰り返し処理と抜ける方法の完全ガイド

C#のプログラミングにおいて、繰り返し処理は非常に重要な要素です。
特に「for文」と「foreach文」は、さまざまな場面で使用されますが、
それぞれの文法や使い方には違いがあります。

また、特定の条件で処理を「抜ける」方法も知っておくと、効率的なコードを書けるようになります。

本記事では、C#における「for」と「foreach」の違いと、
処理を抜けるためのさまざまな方法について詳しく解説します。
これを理解することで、より効率的なコード作成ができるようになるでしょう。

記事のポイント

  • C#における「for文」と「foreach文」の違いが理解できる
  • 繰り返し処理を途中で抜ける方法を学べる
  • 2重ループなどの多重ループ処理での抜け方も解説
目次

C#でのfor文とforeach文の使い方と抜ける方法

途中で抜ける方法

C#で繰り返し処理を行っている最中に、特定の条件が成立したらその場で処理を抜けたい場合、breakcontinueといった制御文を使用します。
これにより、指定した条件に達した際ループを終了させたり、次のループの反復に移行したりできます。

  • break:現在のループを完全に終了します。
  • continue:ループを途中でスキップし、次の反復処理に移行します。

例として、
以下のコードでは、for文で特定の条件を満たした場合にbreakを使ってループを終了しています。

for (int i = 0; i < 10; i++)
{
    if (i == 5)
    {
        break; // iが5になったらループを抜ける
    }
    Console.WriteLine(i);
}

このコードでは、iが5になった時点でループが終了します。


以下のコードは、continueを使って偶数のみをスキップする例です。

for (int i = 0; i < 10; i++)
{
    if (i % 2 == 0)
    {
        continue; // 偶数の場合、以降の処理をスキップ
    }
    Console.WriteLine(i);
}

このコードでは、奇数のみが表示され、偶数はスキップされます。

for文とforeach文の違い

C#における「for文」と「foreach文」はどちらも繰り返し処理に使用されますが、
それぞれに特徴があります。

  • for文
     繰り返し回数を自分で管理できる。
     インデックスを使ってアクセスするため、特定の範囲で処理を行いたい場合に有効です。
  • foreach文
     コレクションや配列全体を効率的にループ処理するのに適しています。
     個々の要素を取り出す際に、インデックスを使う必要がなく、よりシンプルです。

例えば、for文を使ったコードは以下のようになります。

for (int i = 0; i < 5; i++)
{
    Console.WriteLine(i);
}

一方、foreach文を使うと、コレクションの要素を簡単に処理できます。

int[] numbers = { 1, 2, 3, 4, 5 };
foreach (int number in numbers)
{
    Console.WriteLine(number);
}

両者の違いを理解することで、より適切な場面で選択できるようになります。

for文とforeach文の多重ループでの処理抜ける方法

foreach文で2重ループを抜ける方法

C#で2重ループ(多重ループ)を使用する場合、
内側のループだけでなく外側のループも終了させる必要が生じることがあります。
breakだけでは内側のループしか抜けられないため、外側のループも終了させたい場合は工夫が必要です。

例として、以下は内側のループを終了させる方法です。

int[,] matrix = { { 1, 2 }, { 3, 4 } };
foreach (int value in matrix)
{
    if (value == 3)
    {
        break; // 内側のループを抜ける
    }
    Console.WriteLine(value);
}

一方、外側のループも終了させたい場合は、bool型のフラグを使って全体のループを制御する方法が有効です。

bool exitLoop = false;
for (int i = 0; i < 3; i++)
{
    for (int j = 0; j < 3; j++)
    {
        if (i == 1 && j == 1)
        {
            exitLoop = true;
            break; // 内側のループを抜ける
        }
        Console.WriteLine($"{i}, {j}");
    }
    if (exitLoop)
    {
        break; // 外側のループも抜ける
    }
}

まとめ:C#のfor文とforeach文の処理を抜ける方法について

C#において、for文foreach文の適切な使用は効率的なコード作成の鍵となります。
これらのループ処理の途中で抜ける方法や、多重ループの制御を理解することで、
より複雑なロジックをシンプルに実装することができます。

特に、breakcontinueを使った適切なループ制御は、
コードの可読性とパフォーマンスを向上させるための重要な技術です。
ぜひ、この記事で学んだ内容を実際のプログラミングに取り入れてみてください。

他にもC#の様々なテクニックの紹介やエンジニアに役立つ情報を発信していますので興味のある方は以下のリンクからどうぞ!

C#やエンジニアに役立つ情報はこちら

収入を上げたいエンジニアはこちら

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次