Heim > Artikel > Backend-Entwicklung > Wie kann ich das Verhalten einer do-while-Schleife in Go replizieren?
Replizieren des Verhaltens der do-while-Schleife in Go
Do-while-Schleifen, die häufig in Sprachen wie Java verwendet werden, führen einen Block aus Code, bis eine bestimmte Bedingung erfüllt ist. Obwohl Go über keine explizite Do-While-Syntax verfügt, gibt es alternative Möglichkeiten, dieses Verhalten zu erreichen.
Betrachten Sie das bereitgestellte Beispiel: ein Programm, das Benutzern Optionen zum erneuten Ausführen oder Beenden bietet. Dieses Szenario kann mit einer Kombination aus for-Schleife und Switch-Case-Struktur repliziert werden.
Den Originalcode verstehen
Der bereitgestellte Code enthält eine for-Schleife, die mit var beginnt i = 1 und verwendet i > 0 als Schleifenbedingung. Dadurch entsteht jedoch eine Endlosschleife, da i innerhalb der Schleife nie geändert wird.
Emulieren des Do-While-Verhaltens
In Go können Sie Do-While-Schleifen mit emulieren eine for-Schleife mit einer booleschen Schleifenvariablen, die mit true initialisiert wird. Diese Schleife wird so lange ausgeführt, bis die Schleifenvariable „false“ wird.
Hier ist ein Codeausschnitt, der das Beispiel mit diesem Ansatz implementiert:
var input int for ok := true; ok; ok = (input != 2) { // ... (same logic as before, options 1, 2, default case) }
In diesem Code ist ok die boolesche Schleifenvariable. Es bleibt wahr, bis der Benutzer den Wert 2 eingibt (was den Wunsch anzeigt, das Programm zu verlassen). An diesem Punkt wird es falsch und verlässt die Schleife.
Vorteile der Verwendung des expliziten Schleifenausgangs
Während die Do-While-Emulation nützlich sein kann, wird es im Allgemeinen als expliziter und wartbarer angesehen, die Bezeichnungen break, return oder os.Exit zu verwenden Anweisungen zum Beenden von Schleifen, wenn bestimmte Bedingungen erfüllt sind. Dieser Ansatz ermöglicht einen klareren Kontrollfluss und vermeidet potenzielle Verwirrung oder versteckte Schleifenzustände.
Das obige ist der detaillierte Inhalt vonWie kann ich das Verhalten einer do-while-Schleife in Go replizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!