Jump Statements (goto)
Teil des Abschnitts Logik & Ablauf der C#-Journey von Coddy — Lektion 20 von 66.
Die goto-Anweisung in C# bietet eine Möglichkeit, die Steuerung direkt zu einer beschrifteten Anweisung innerhalb derselben Methode zu übertragen.
Erstellen Sie ein Label in Ihrem Code:
start:Verwenden Sie die goto-Anweisung, um zu diesem Label zu springen:
goto start;Hier ist ein einfaches Beispiel, das goto verwendet, um eine Schleife zu erstellen:
int i = 0;
start:
if (i < 5)
{
Console.WriteLine(i);
i++;
goto start;
}Nach der Ausführung des obigen Codes lautet die Ausgabe:
0
1
2
3
4Obwohl goto in C# existiert, wird im Allgemeinen empfohlen, stattdessen strukturierte Steuerungsanweisungen (if, for, while usw.) zu verwenden, da diese den Code lesbarer und wartbarer machen.
Aufgabe
EinfachErstellen Sie eine Methode namens ProcessCommands, die ein Argument annimmt:
- Ein String (
command), der einen zu verarbeitenden Befehl enthält.
Die Methode sollte einen einfachen Befehlsprozessor mit goto-Anweisungen implementieren:
- Wenn der Befehl "start" ist, geben Sie "Starting process" aus und gehen Sie dann zum "end"-Label
- Wenn der Befehl "stop" ist, geben Sie "Stopping process" aus und gehen Sie dann zum "end"-Label
- Wenn der Befehl "pause" ist, geben Sie "Pausing process" aus und gehen Sie dann zum "end"-Label
- Wenn der Befehl etwas anderes ist, geben Sie "Unknown command" aus und gehen Sie dann zum "end"-Label
- Am "end"-Label geben Sie „Command processed“ aus
Spickzettel
Die goto-Anweisung überträgt die Kontrolle direkt zu einer beschrifteten Anweisung innerhalb derselben Methode.
Ein Label erstellen:
start:Zu einem Label springen mit goto:
goto start;Beispiel zur Erstellung einer Schleife mit goto:
int i = 0;
start:
if (i < 5)
{
Console.WriteLine(i);
i++;
goto start;
}Obwohl goto in C# existiert, werden strukturierte Steuerungsanweisungen (if, for, while usw.) im Allgemeinen für bessere Lesbarkeit und Wartbarkeit des Codes empfohlen.
Probier es selbst
using System;
public class Program
{
public static void ProcessCommands(string command)
{
// Schreibe hier deinen Code
}
public static void Main(string[] args)
{
string command = Console.ReadLine();
ProcessCommands(command);
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety