【資料】goto から for 文への発展

📌 1. この資料の目的

  • プログラミングの繰り返し処理がgoto から for にどう進化したかを理解する
  • goto と for の動きを 条件まで一致 させて比較しそれぞれのメリット・デメリットを整理する

📌 2. 例題

🎯 目的

「こんにちは」を3回表示し、最後に「繰り返し終わり」を表示する。


✅ 【for 文版】

for (int i = 0; i < 3; i++)
{
    Console.WriteLine("こんにちは");
}

Console.WriteLine("繰り返し終わり");

ポイント

  • i = 0 からスタート
  • i < 3 の間繰り返す
  • i++ で1ずつ増やす
  • 条件が成立する間だけ繰り返される

✅ 【goto 文版】

int i = 0;

LoopStart:
    if (i < 3)
    {
        Console.WriteLine("こんにちは");
        i++;
        goto LoopStart;
    }

Console.WriteLine("繰り返し終わり");

ポイント

  • i = 0 で初期化
  • if (i < 3) で繰り返し条件を確認
  • 条件が成立すれば出力 → i++ → goto LoopStart; で戻る
  • 条件が成立しなくなったら goto せず、終了

📌 3. 両者の違いと共通点

項目for 文goto 文
初期化i = 0i = 0
条件判定i < 3if (i < 3)
更新処理i++i++
繰り返し構造組込構文手動で goto
保守性高い低い(条件や更新を忘れると無限ループ)

📌 4. 制御構造の進化

✅ goto はジャンプするだけの単純な仕組み

  • 条件判定や増分処理を自分で書かないといけない
  • 見落とすと無限ループや分岐ミスが起きやすい

✅ for は「初期化 → 条件判定 → 更新処理」を一行にまとめる

  • 条件と増分の書き忘れを防ぐ
  • ループの回数が一目でわかるので読みやすい

📌 5. 条件を一致させる意味

  • goto で if (i < 3) と書くと、for の i < 3 と完全に同じ条件式になる。
  • 条件が逆向きだと初心者は混乱するので、なるべく同じ形にすることで動きの比較がしやすくなる。

📌 6. まとめ

  • goto は自由度が高いが、保守性が低い。
  • for は goto と条件分岐・増分を整理した進化形。
  • 制御構造を整理するとプログラムがわかりやすくなり、バグを防ぎやすくなる。

✅ 【結論】

  • goto は必要最小限にとどめ、基本は for や while など構造化されたループを使おう!
  • 条件式をそろえて比較すると、for がどれだけ便利で安全かがよくわかる。

📌 7. 付録:while 文との比較

同じ処理は while でも書けます。

int i = 0;

while (i < 3)
{
    Console.WriteLine("こんにちは");
    i++;
}

Console.WriteLine("繰り返し終わり");
  • while も for と同様に条件式は i < 3。
  • for は「初期化・条件・更新」がまとまっているのに対し、while は初期化と更新を分けて書く。

訪問数 16 回, 今日の訪問数 1回

C#,繰り返し

Posted by hidepon