C#のfor文の成り立ち 〜 Goto文からの発展進化〜
目次
1. はじめに
- C# にも goto は存在しますが、通常の繰り返し処理には使いません。
- for 文は、goto に頼っていた繰り返し処理をより安全・簡潔にするために進化してきた制御構造です。
2. C# の Goto 文とは
2-1. Goto の役割
- C# でも goto はラベルへジャンプするために使えます。
- ただし多用すると処理の流れが追いにくくなるため、推奨されません。
2-2. Goto の例
using System;
class Program
{
static void Main()
{
int i = 1;
Start:
Console.WriteLine(i);
i++;
if (i <= 10) goto Start;
Console.WriteLine("終了");
}
}
- goto とラベル(Start:)を使って 1 〜 10 を出力する例。
3. Goto の問題点
- どこにジャンプするかをコードの他の場所と突き合わせて理解する必要がある。
- 条件が複雑になるとスパゲッティコード化しやすい。
4. 構造化プログラミングと for 文
4-1. C# での for 文
- for は「初期化 → 条件 → 更新処理」を 1 行にまとめて表現できる。
- 処理の流れが読みやすく、意図が明確。
4-2. 同じ処理を for 文で
using System;
class Program
{
static void Main()
{
for (int i = 1; i <= 10; i++)
{
Console.WriteLine(i);
}
Console.WriteLine("終了");
}
}
5. Goto と for 文の比較(C#)
項目 | Goto文 | for文 |
---|---|---|
コードの流れ | 複数箇所にジャンプ | 1箇所で完結 |
可読性 | 低い | 高い |
メンテナンス性 | 低い | 高い |
使用例 | 特殊な脱出処理(switchの中など) | 一般的なループ処理 |
6. C# での Goto の現代的な用途
- goto case / goto default:switch 文の中で他のケースへ飛ばす。
- goto を普通のループ制御には使わない。
7. まとめ
- C# でも goto は存在するが、繰り返しは for / while / foreach が基本。
- for 文は goto に頼るよりも意図が明確で安全。
- 構造化プログラミングの考え方に沿って、制御構造を選ぶのが現代のスタイル。
おまけ:C# の Goto 使用例(switch文)
switch (day)
{
case "Monday":
Console.WriteLine("Start of week");
break;
case "Saturday":
case "Sunday":
goto case "Monday"; // "Monday" の処理を再利用
default:
Console.WriteLine("Midweek");
break;
}
- 特殊なラベルジャンプには使われるが、一般的な繰り返しには使わない。
訪問数 4 回, 今日の訪問数 1回
ディスカッション
コメント一覧
まだ、コメントがありません