【C#】for・foreach・whileのループ処理の使い方

プログラミングでは「同じ処理を繰り返す」ことが頻繁にあります。C# では代表的なループ構文として forforeachwhile の3種類がよく使われます。本記事ではそれぞれの書き方と特徴を紹介し、使い分けのポイントを解説します。

for文|カウンタ制御の繰り返し

for 文は「回数を決めて繰り返す」処理に適しています。カウンタ変数を初期化し、条件式を満たす間だけループが続き、繰り返すたびにカウンタを更新します。

for (int i = 0; i < 5; i++)
{
    Console.WriteLine($"iの値は {i}");
}

出力は 0~4 が順番に表示されます。
配列やリストのインデックスを使ってアクセスしたいときにも便利です。

foreach文|コレクション要素を順番に処理

foreach 文は配列やリストなど「コレクションの要素を順番に処理する」場合に使います。インデックスを意識せずシンプルに書けるのが特徴です。

string[] fruits = { "Apple", "Banana", "Orange" };

foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}

すべての要素に順番にアクセスでき、読み取り専用で扱うイメージです。要素を追加・削除する場合は for の方が適しています。

while文|条件が満たされる間繰り返す

while 文は「条件が true の間処理を繰り返す」構文です。繰り返し回数が決まっていない処理に向いています。

int count = 0;

while (count < 3)
{
    Console.WriteLine("count = " + count);
    count++;
}

条件が常に true だと無限ループになるため、必ず終了条件を満たすように変数を更新する必要があります。

do-while文|最低1回は実行されるループ

do-while 文は while と似ていますが、条件判定を最後に行うため「必ず1回は実行される」という特徴があります。

int number = 0;

do
{
    Console.WriteLine("処理を実行");
    number++;
} while (number < 1);

まとめ|ループ構文の使い分け

C# のループ構文は用途に応じて使い分けると効率的です。

  • for文: 繰り返し回数が明確な場合やインデックスを使う場合
  • foreach文: 配列やリストの要素を順番に処理したい場合
  • while文: 条件が満たされる限り繰り返したい場合(回数不定)
  • do-while文: 少なくとも1回は処理したい場合

それぞれの特性を理解すれば、処理内容に応じて最適なループ構文を選べるようになります。