ホームページ >バックエンド開発 >C#.Net チュートリアル >C# の Goto ステートメント
C# の Goto ステートメントは、Jump ステートメントとも呼ばれ、プログラムのフローをラベル付きステートメントに直接転送します。これらのステートメントは、プログラムの制御を他の部分に移します。 Goto ステートメントの最も一般的な用途の 1 つは、プログラムの制御を switch ステートメント内の特定のポイントに移動することです。深くネストされたループの場合、goto ステートメントはループから抜け出すための優れた関数となります。ネストされたループは継続し、プログラムはループの終わりまで待機しますが、途中で条件が満たされた場合は、goto ステートメントを実装してループからすぐに抜け出すことができ、時間を節約できます。
構文:
次に、goto ステートメントの標準構文を示します。
goto statement_name;
構文は、goto キーワードの宣言から始まり、ステートメント名を使用します。プログラム内でこの行が実行されると、プログラムはプログラムのstatement_name部分にジャンプします。プログラムはいつでも、どのような時点でも、上記の goto 構文に遭遇すると、goto ステートメントを実行して、言及されたstatement_name にジャンプします。これにより、制御が切り替わります。
フローチャートの goto ステートメントの動作を理解しましょう。
上記のフローチャートを参照すると、goto ステートメントを使用したプログラムのコード フローを理解できます。複数のステートメント 1、2、3 があり、コードが先に進むと、3 番目のステートメントで goto ステートメントに遭遇します。そして、3 番目のステートメントから、コードは goto ステートメントが指している場所にジャンプします。このサンプルでは、ステートメント 1 を参照する goto ステートメントがあります。つまり、コードが goto ステートメントに遭遇すると、条件がチェックされ、条件の結果に基づいて、コードは先に進みます。プログラムが終了するか、goto ステートメントが実行され、コードがジャンプします。
Goto ステートメントは Jump ステートメントです。これは、迅速な終了を提供する方法で、どのプログラムでも機能します。その仕組みは、プログラムの制御を任意の時点で特定のポイントに移すこと、これが C# の Goto ステートメントの主な目的です。
Goto ステートメントがどのように動作するかを理解したので、適切なコードを使用して Goto ステートメントの動作を示してみましょう。
コード:
using System; public class sampleGoto { public static void Main(string[] args) { eligibility: Console.WriteLine("You are not an adult yet!"); Console.WriteLine("Enter your age:\n"); int age = Convert.ToInt32(Console.ReadLine()); if (age < 18) { goto eligibility; } else { Console.WriteLine("You are an adult!"); Console.Read(); } } }
コードの解釈: 名前空間ファイルを使用し、その中のメインクラスからクラスを開始します。次に、goto キーワード「資格」があり、「あなたはまだ大人ではありません!」という出力ステートメントが含まれています。このステートメントを出力した後、プログラムは先に進み、次の行を実行します。ここで、「年齢を入力してください:」は出力されるステートメントであり、値を入力する必要があります。値を入力すると、プログラムは if ステートメントを入力し、条件をチェックします。条件が満たされると、コードは次のステートメントに進みます。これには、誰かが 18 以外の値を入力した場合の goto ステートメントが含まれます。
私たちのプログラムが goto ステートメントに触れると、言及された部分、つまり適格性にジャンプし、その時点から先に進みます。プログラムには「あなたは大人です!」というメッセージが表示されます。条件を満たした場合にユーザーに通知されます。番組が終了したことを意味します。出力については、以下に添付されたスクリーンショットを参照してください。
スクリーンショットに示されているように、18 未満の値を渡すと最初のステートメントが出力され、次に 18 より大きい値を入力すると、プログラムは else ステートメントを出力します。 Goto ステートメントを使用した簡単なプログラムを示したので、同じ操作を実行する別の例を試してみましょう。
コード:
using System; public class sampleGoto { public static void Main(string[] args) { result: Console.WriteLine("Sorry! you did not pass the test."); Console.WriteLine("Please submit your Passing Percentage:\n"); int age = Convert.ToInt32(Console.ReadLine()); if (age < 40) { goto result; } else { Console.WriteLine("Congrats! You have passed the Test"); Console.Read(); } } }
コードの解釈: 最初のプログラムと同様に、Goto ステートメントの動作を実証しました。単純な条件を使用すると、入力値が 40 を超えているかどうかを簡単にチェックできます。プログラムを実行すると、最初の行に「Sorry!」が表示されます。あなたはテストに合格しませんでした。」次に、プログラムはユーザーに数値の入力を求めます。値を入力すると、プログラムは IF ELSE ループに入り、入力された値が 40 より小さいか大きいかをチェックします。入力された値が 40 未満の場合、プログラムは goto ステートメントを実行し、ラベル付きステートメントにジャンプします。入力された値が 40 より大きい場合、プログラムは続行して else 部分に入ります。他の部分では、「おめでとうございます!」と表示されます。あなたはテストに合格しました」と表示されて終了します。
適切な出力については、以下に添付されたスクリーンショットを参照してください。
GOTO を実装する必要があります: プログラム ロジックがより複雑になるため、goto ステートメントを実装または使用しないことをお勧めします。また、プログラムが goto ステートメントに遭遇すると、コード フローを追跡するのは簡単ではありません。逆に、Goto を使用した方がプログラムの流れがスムーズになると思われる場合は、ご自由に使用してください。 Goto はほとんど使用されません。
C# の Goto ステートメントが何であるかを理解しました。 Goto ステートメントの仕組みと構文を広く理解しました。その後、例を示して Goto ステートメントの機能を示しました。異なるシナリオの 2 つの例を使用して Goto ステートメントを実装しました。長いプログラムで Goto ステートメントを広範囲に使用することは、プログラムの構造が複雑になり、直接的なデバッグがより困難になる可能性があるため、お勧めできません。
以上がC# の Goto ステートメントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。