Replikation der Do While-Schleife in Go
In Go korreliert das Konzept einer While-Schleife nicht direkt mit der Do-While-Schleife von Java. Es gibt jedoch Möglichkeiten, die Funktionalität einer Do-While-Schleife mithilfe anderer in Go verfügbarer Schleifenstrukturen zu emulieren.
Sehen wir uns das von Ihnen bereitgestellte Codebeispiel genauer an:
var i = 1 for i > 0 { fmt.Println("Press 1 to run") fmt.Println("Press 2 to exit") var input string inpt, _ := fmt.Scanln(&input) switch inpt { case 1: fmt.Println("hi") case 2: os.Exit(2) default: fmt.Println("def") } }
Ihr Code ist gesperrt in einer Endlosschleife unabhängig von der Eingabe, da die Schleifenbedingung i > 0 ist immer wahr. Um das Do-While-Verhalten zu emulieren, müssen Sie eine andere Schleifenstruktur verwenden, die die Schleifenbedingung erst überprüft, nachdem der Schleifenkörper ausgeführt wurde.
Hier ist eine modifizierte Version Ihres Codes, die die gewünschte Funktionalität erreicht:
var input int for { fmt.Println("Press 1 to run") fmt.Println("Press 2 to exit") n, err := fmt.Scanln(&input) if n < 1 || err != nil { fmt.Println("Invalid input") break } switch input { case 1: fmt.Println("hi") case 2: fmt.Println("Exiting...") return default: fmt.Println("Invalid input") } }
In diesem Code:
Dieser Code stellt das gewünschte Verhalten der Ausführung des Schleifenkörpers bereit, bis der Benutzer sich explizit zum Beenden entscheidet.
Das obige ist der detaillierte Inhalt vonWie repliziere ich eine Do While-Schleife in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!