for文とは?
C#のfor文は、指定した回数だけ同じ処理を繰り返すときに使う、基本的な命令文です。
例えば、「グラウンドを10周走る」や「英単語を5回書き写す」のように、私たちの生活でも回数を決めて何かを繰り返すことがありますよね。
プログラミングでも、同じように回数を指定して処理を繰り返したい場面でfor文が活躍します。
for文の特徴
- ループの初期化、継続条件、更新処理を1行でまとめて記述できる
- 指定した条件が満たされている間、同じ処理を繰り返す
- 処理は波括弧{}で囲んだコードブロック内に記述する
- 「10回繰り返す」のように、繰り返す回数が決まっている処理に適している
- ループに関する制御が1箇所に集約されるため、可読性が高く管理しやすい
同じ処理を効率的に、そして間違いなく繰り返すために欠かせない機能です。
基本構文
for文の基本的な書き方を紹介します。for文は、丸括弧 () の中に、セミコロン ; で区切られた3つの要素で構成されます。
- 初期化式はループで使うカウンター変数を準備
- 条件式はループを続けるための条件を指定
- 更新式は処理が1回終わるごとにカウンター変数を更新する。主にi++やi--のようなインクリメント、デクリメントが使われる
それでは、最もシンプルな形を見ていきましょう。0から2まで、3回カウントアップする処理です。カウンター変数iを0で初期化し、ループのたびに1ずつ増やします。iが3未満の間、処理を繰り返します。
出力結果
カウント: 0
カウント: 1
カウント: 2
この例では、まずカウンター変数iの値を0で初期化し、i < 3という条件が満たされているかを確認し、満たされていれば{}内の処理を実行してiを1増やします。iが3になると条件を満たさなくなるため、ループが終了します。
配列の要素を順番に処理する書き方です。配列の要素数は.Lengthで取得できます。
配列の要素を順番に処理する場合は以下のように記述します。
出力結果
1番目: イヌ
2番目: ネコ
3番目: ウサギ
この例では、animals.Lengthで配列の要素数を取得し、ループの条件式に使っています。iが0から2まで変化するのに合わせて、animals[i]で配列の各要素に順番にアクセスして表示しています。
実用例
ここからは、for文の具体的な使用例をサンプルコードで紹介します。実際のプログラミングでよく使われるパターンを、動物の名前などを使って親しみやすく解説します。コードの動作を理解しながら、for文の活用方法を身に付けていきましょう。
基本的な数値のカウントアップ
最もシンプルなfor文の使用例です。指定した回数だけカウントアップを行います。
出力結果
ライオンが1回吠えました
ライオンが2回吠えました
ライオンが3回吠えました
ライオンが4回吠えました
ライオンが5回吠えました
この例では、カウンター変数countを1から始め、countが5以下の間ループを繰り返します。処理が1回終わるごとにcountが1ずつ増えるため、結果として5回メッセージが表示されます。
配列の要素を順番に表示
配列に格納された動物の名前を順番に表示する処理です。
出力結果
動物園の1番目はゾウです
動物園の2番目はキリンです
動物園の3番目はシマウマです
動物園の4番目はカバです
この例では、zooという配列の要素数だけループを繰り返します。iは0から始まり、zoo[0]、zoo[1]…と順番に要素を取り出して表示します。i + 1とすることで、表示を1番目からに調整しています。
逆順でのカウントダウン処理
カウンターを減らしながら繰り返し処理を行う例です。
出力結果
サル5匹が木から飛び降りた
サル4匹が木から飛び降りた
サル3匹が木から飛び降りた
サル2匹が木から飛び降りた
サル1匹が木から飛び降りた
全部のサルが降りました
この例では、カウンターiの初期値を5に設定し、iが1以上である間ループを続けます。更新式i--によって、ループのたびにiが1ずつ減っていきます。
条件付きでの処理スキップ
特定の条件でスキップする処理です。ループの途中で処理をスキップしたい場合は、continue文を使います。
出力結果
ペンギン1号が歩いています
ペンギン2号が歩いています
ペンギン4号が歩いています
ペンギン5号が歩いています
ペンギン6号が歩いています
この例では、iが3になったときif文の条件が成立し、continue文が実行されます。continueが実行されると、その回のループの残りの処理は実行されず、次の繰り返しに移ります。そのため、ペンギン3号のメッセージだけが表示されません。
ネストしたfor文による表作成
2重のfor文を使って表形式のデータを作成する例です。for文の中にさらにfor文を入れるネスト(入れ子)構造にすると、九九の表のような2次元のデータも扱えます。
出力結果
イヌ1-1 イヌ1-2 イヌ1-3 イヌ1-4
イヌ2-1 イヌ2-2 イヌ2-3 イヌ2-4
イヌ3-1 イヌ3-2 イヌ3-3 イヌ3-4
この例では、外側のループ(row)が1回実行されるたびに、内側のループ(col)が4回すべて実行されます。Console.Writeは改行せずに出力し、内側のループが終わるたびにConsole.WriteLineで改行することで、表のような形式で出力しています。
文字列の文字数分だけ繰り返し
文字列の長さに基づいて繰り返し回数を決める処理です。
出力結果
カピバラが1歩目を歩きました
カピバラが2歩目を歩きました
カピバラが3歩目を歩きました
カピバラが4歩目を歩きました
この例では、文字列animalに"カピバラ"を代入しています。animal.Lengthは4になるため、for文の条件式 i < animal.Length は i < 4 と同じ意味になります。結果として、iが0から3までの4回ループが実行され、出力結果のように4行のメッセージが表示されます。
計算結果の累積処理
for文を使って計算結果を累積していく処理の例です。
出力結果
1日目: ニワトリが2個卵を産んだ
2日目: ニワトリが4個卵を産んだ
3日目: ニワトリが6個卵を産んだ
4日目: ニワトリが8個卵を産んだ
合計: 20個の卵
この例では、1日ごとの産卵数を合計するために、合計を記録する変数totalEggsを0で初期化しています。ループの中でtotalEggs += day * 2;を実行し、その日の卵の数をtotalEggsに加算していきます。
+=は左辺の変数に右辺の値を足して代入する演算子で、ループを通して合計値が徐々に増えていく仕組みです。
特定範囲の偶数のみ処理
条件を組み合わせて偶数のみを処理する例です。
出力結果
クマが2匹で遊んでいます
クマが4匹で遊んでいます
クマが6匹で遊んでいます
クマが8匹で遊んでいます
クマが10匹で遊んでいます
この例では、偶数だけを順番に処理するために、カウンターiの初期値を2に設定し、更新式をi += 2としています。iはループのたびに2ずつ増えるため、2・4・6・8・10といった偶数のみが処理されます。
for文の更新式を工夫することで、任意の間隔で値を増減させるループを作ることができます。
まとめ
C#のfor文は、繰り返し処理を実現する基本的で重要な制御構文です。この記事では、基本的な使い方から応用例まで解説しました。
for文が活躍する場面
- 配列やリストの全要素に対して同じ処理を行いたいとき
- 指定した回数だけ、計算や表示を繰り返したいとき
- データの集計や統計処理で、反復計算が必要なとき
重要なポイント
- 初期化式、条件式、更新式の3つの役割を正しく理解する
- 配列のインデックスは、範囲外にならないよう境界値に注意する
- ループのネスト(入れ子)で、より複雑な処理も実現できる
初めてC#を学ぶ方も、この記事で紹介したfor文を実際に書いて、基本的な使い方を試してみてください。
繰り返し処理は、実際の開発で多く使用されます。マスターしておけば役立つこと間違いなしです。
ぜひfor文をマスターして、より実用的なプログラムを作成できるようになりましょう。