Menu
Coddy logo textTech

Jump Statements (goto)

CoddyのC#ジャーニー「ロジックとフロー」セクションの一部 — レッスン 20/66。

C# の goto 文は、同じメソッド内のラベル付きステートメントに直接制御を転送する方法を提供します。

コードにラベルを作成してください:

start:

goto 文を使用してそのラベルにジャンプします:

goto start;

gotoを使用してループを作成する簡単な例です:

int i = 0;

start:
if (i < 5)
{
    Console.WriteLine(i);
    i++;
    goto start;
}

上記のコードを実行すると、出力は次のようになります:

0
1
2
3
4

C# には goto が存在しますが、if, for, while などの構造化された制御フローステートメントを使用することを一般的に推奨します。これによりコードがより読みやすく保守しやすくなります。

challenge icon

チャレンジ

簡単

ProcessCommands という名前のメソッドを作成してください。このメソッドは 1 つの引数を受け取ります:

  • 処理するコマンドを含む文字列(command)。

このメソッドは、goto 文を使用してシンプルなコマンドプロセッサを実装する必要があります:

  • コマンドが "start" の場合、"Starting process" を出力してから "end" ラベルに移動します
  • コマンドが "stop" の場合、"Stopping process" を出力してから "end" ラベルに移動します
  • コマンドが "pause" の場合、"Pausing process" を出力してから "end" ラベルに移動します
  • コマンドがそれ以外の場合、"Unknown command" を出力してから "end" ラベルに移動します
  • "end" ラベルで「Command processed」を出力します

チートシート

goto 文は、同じメソッド内のラベル付きステートメントに制御を直接転送します。

ラベルを作成:

start:

goto を使用してラベルにジャンプ:

goto start;

goto を使用してループを作成する例:

int i = 0;

start:
if (i < 5)
{
    Console.WriteLine(i);
    i++;
    goto start;
}

C# には goto が存在しますが、コードの可読性と保守性を向上させるために、構造化された制御フロー文 (if, for, while など) が一般的に推奨されます。

自分で試してみよう

using System;

public class Program
{
    public static void ProcessCommands(string command)
    {
        // ここにコードを書いてください
    }
    
    public static void Main(string[] args)
    {
        string command = Console.ReadLine();
        ProcessCommands(command);
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン