Heim  >  Artikel  >  Backend-Entwicklung  >  Wie repliziere ich eine Do While-Schleife in Go?

Wie repliziere ich eine Do While-Schleife in Go?

DDD
DDDOriginal
2024-11-20 03:23:01224Durchsuche

How to Replicate a Do While Loop in Go?

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:

  • Die Schleifenvariable i wird entfernt und eine neue Variableneingabe vom Typ int wird verwendet, um Benutzereingaben zu erfassen.
  • Die Schleifenbedingung ist nicht definiert, was zu einer Endlosschleife führt.
  • Die break-Anweisung wird verwendet, um die Schleife zu verlassen, wenn der Benutzer eine ungültige Eingabe eingibt oder sich zum Beenden entscheidet.
  • Die return-Anweisung wird verwendet, um die Schleife zu verlassen Beenden Sie die Funktion, wenn der Benutzer sich zum Beenden entscheidet, wodurch das Programm effektiv beendet wird.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn