【資料】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 = 0 | i = 0 | 
| 条件判定 | i < 3 | if (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 は初期化と更新を分けて書く。
 
訪問数 50 回, 今日の訪問数 1回







ディスカッション
コメント一覧
まだ、コメントがありません