導入
配列やリストの中身を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件ずつ処理する- インデックス管理が不要で安全・読みやすい
- 「全件処理」の基本の道具
次回: ループを途中で抜ける・スキップするbreakとcontinueです。