本文へスキップ
BecomeCoder

C#文法コース · 第2章 制御構文 · レッスン20

foreach ループ

ブラウザで完結

導入

配列やリストの中身を1件ずつ取り出して処理するのがforeachです。インデックス(番号)を意識せず、要素そのものを扱えるので安全で読みやすいループです。

図解

flowchart LR
    L["[りんご, みかん, ぶどう]"] --> F["foreach"]
    F -->|1件目| A["fruit = りんご"]
    F -->|2件目| B["fruit = みかん"]
    F -->|3件目| C["fruit = ぶどう"]

サンプル

string[] fruits = { "りんご", "みかん", "ぶどう" };

// 要素を1つずつ fruit に取り出して繰り返す
foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}
// りんご / みかん / ぶどう

// 合計を求める例
int[] prices = { 100, 200, 300 };
int total = 0;
foreach (int price in prices)
{
    total += price;
}
Console.WriteLine($"合計{total}円");   // 合計600円
  • foreach (型 変数 in コレクション): 要素を1つずつ変数に取り出す
  • インデックス([0]など)を書かずに済むので間違えにくい
  • 「全件に同じ処理をしたい」ときの第一選択

演習

string[] names = { "Alice", "Bob", "Carol" };

// TODO: foreach で各名前に "さん" を付けて1行ずつ出力してください
//       (Aliceさん / Bobさん / Carolさん)
___
  • 期待される出力: Aliceさん Bobさん Carolさん(3行)
ヒント1を見る

foreach (string name in names) で回します

ヒント2を見る

foreach (string name in names) Console.WriteLine($"{name}さん");

まとめ

  • foreachはコレクションの要素を1件ずつ処理する
  • インデックス管理が不要で安全・読みやすい
  • 「全件処理」の基本の道具

次回: ループを途中で抜ける・スキップするbreakcontinueです。

実際に動かしてみよう

本文のサンプルや演習のコードは、コードブロック右上の「コピー」ボタンでコピーして、下のエディタに貼り付ければそのまま実行できます。

C# — ブラウザ内で実行

ブラウザ内でC#を動かす環境を読み込みます(初回のみ数秒)。
スクロールして表示された時点でも自動で読み込まれます。