#6 C#で学ぶループの基本
C#のループは、Javaとよく似た書き方に加えて、コレクションを扱いやすいforeach文が用意されています。この記事では、C#におけるループの基本を解説します。
for文の基本
for (int i = 0; i < 5; i++) {
Console.WriteLine(i);
}
foreach文
配列やリストの中身を1つずつ処理したい場合は、`foreach`を使います。
string[] fruits = {"りんご", "みかん", "ぶどう"};
foreach (string fruit in fruits) {
Console.WriteLine(fruit);
}
Javaの拡張for文にあたる書き方で、`foreach`という専用のキーワードが用意されているのがC#の特徴です。インデックス番号も一緒に使いたい場合は、`Select`と組み合わせる方法があります。
foreach (var (fruit, index) in fruits.Select((f, i) => (f, i))) {
Console.WriteLine($"{index}: {fruit}");
}
while文とdo-while文
int count = 0;
while (count < 5) {
Console.WriteLine(count);
count++;
}
「最低1回は処理を実行してから条件を判定したい」場合は、`do-while`文を使います。
int n = 0;
do {
Console.WriteLine(n);
n++;
} while (n < 5);
ループの制御:break/continue
特定の条件でループを抜けたい場合は`break`、その回だけスキップしたい場合は`continue`を使います。
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) continue; // 偶数はスキップ
if (i > 7) break;
Console.WriteLine(i);
}
C#ならではの注意点
`foreach`はコレクションの中身を順番に取り出すだけの書き方のため、添字が必要な処理(例えば「3番目の要素だけ特別扱いしたい」など)には向いていません。そのような場合は従来の`for`を使うか、`Select`で添字を付与する方法を検討しましょう。また、`foreach`でコレクションの中身を走査しながら要素を追加・削除しようとすると、実行時に例外が発生する点もC#(および多くの.NET系コレクション)で共通する注意点です。要素を変更したい場合は、一度別のリストにコピーしてから処理するのが安全です。
まとめ
C#のループは`for`・`while`・`do-while`・`foreach`が基本です。コレクションの中身をシンプルに処理したいときは`foreach`を、走査中の変更が必要な場面では例外に注意して扱いましょう。
本ページはプロモーションを含みます。
参考書籍(PR)
C#をもっと学びたい方には「確かな力が身につくC#「超」入門 第2版」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿