Réplication de la boucle Do While dans Go
Dans Go, le concept de boucle while n'est pas directement corrélé à la boucle do while de Java. Cependant, il existe des moyens d'émuler la fonctionnalité d'une boucle do while en utilisant d'autres structures de boucle disponibles dans Go.
Examinons l'exemple de code que vous avez fourni :
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") } }
Votre code est verrouillé dans une boucle infinie quelle que soit l'entrée car la condition de boucle i > 0 est toujours vrai. Pour émuler le comportement do while, vous devez utiliser une structure de boucle différente qui vérifie la condition de la boucle uniquement après l'exécution du corps de la boucle.
Voici une version modifiée de votre code qui atteint la fonctionnalité souhaitée :
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") } }
Dans ce code :
Ce code fournit le comportement souhaité d'exécution du corps de la boucle jusqu'à ce que l'utilisateur choisisse explicitement de quitter.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!