Sprunganweisungen (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 an eine markierte Anweisung innerhalb derselben Methode zu übertragen.
Erstelle ein Label in deinem Code:
start:Verwende 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 Kontrollflussanweisungen (if, for, while usw.) zu verwenden, da sie den Code lesbarer und wartbarer machen.
Aufgabe
EinfachErstelle eine Methode namens ProcessCommands, die ein Argument entgegennimmt:
- Eine Zeichenkette (
command), die einen zu verarbeitenden Befehl enthält.
Die Methode soll einen einfachen Befehlsprozessor mithilfe von goto-Anweisungen implementieren:
- Wenn der Befehl "start" lautet, gib "Starting process" aus und springe anschließend zum Label "end"
- Wenn der Befehl "stop" lautet, gib "Stopping process" aus und springe anschließend zum Label "end"
- Wenn der Befehl "pause" lautet, gib "Pausing process" aus und springe anschließend zum Label "end"
- Wenn der Befehl etwas anderes ist, gib "Unknown command" aus und springe anschließend zum Label "end"
- Gib am Label "end" “Command processed” aus
Probier es selbst
using System;
public class Program
{
public static void ProcessCommands(string command)
{
// Schreibe deinen Code hier
}
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
1Mehrdimensionale Arrays
Grundlagen 2D-Arrays2D-Arrays deklarieren und initialisierenAuf Elemente von 2D-Arrays zugreifenVerschachtelte Schleifen mit 2D-ArraysGezackte ArraysHäufige MatrixoperationenZusammenfassung – Mehrdimensionale Arrays4Techniken zur Ablaufsteuerung
Frühe RückgabenWächterklauselnSprunganweisungen (goto)Break und ContinueVerschachtelte Bedingungen abflachen7Logische Operatoren – Fortgeschritten
KurzschlussauswertungBedingte logische OperatorenOperatorrangfolgeRückblick – Erweiterte Operatoren2Fortgeschrittene Entscheidungslogik
Mehrere BedingungenKomplexe boolesche LogikVergleich: If vs. SwitchVerschachtelte Switch-AnweisungenRückblick – Fortgeschrittene Entscheidungen5Fehlerbehandlung mit Exceptions
Grundlagen von Try-CatchException-TypenMehrere Catch-BlöckeArbeiten mit DateienFinally-BlockUsing im Vergleich zu Try-FinallyBenutzerdefinierte ExceptionsZusammenfassung – Fehlerbehandlung3Schleifenverbesserungen
SchleifenleistungKomplexe IterationJeder SchleifentypSchleifen refaktorierenRückblick – Optimierte Schleifen6Behandlung von Nullwerten
Grundlagen von NullreferenzenNullable WerttypenMuster zur NullprüfungDefensive ProgrammierungZusammenfassung – NullsicherheitÜbe selbstständig: Online-C#-Compiler