Maison >développement back-end >Golang >Comment pouvez-vous émuler une boucle Do While dans Go ?

Comment pouvez-vous émuler une boucle Do While dans Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-13 13:40:02393parcourir

How Can You Emulate a Do While Loop in Go?

Réplication des boucles do while dans Go

Dans Go, il n'y a pas d'équivalent direct à la boucle do while trouvée dans de nombreux autres langages de programmation. Il existe cependant des moyens d’obtenir des fonctionnalités similaires. Une méthode consiste à utiliser une boucle for avec une variable de boucle booléenne initialisée à true.

Le code suivant montre comment émuler une boucle do while dans Go :

for ok := true; ok; ok = EXPR {
  // Code to be executed
}

Cette boucle continuera pour exécuter le bloc de code jusqu'à ce que l'expression EXPR soit évaluée comme fausse. Dans le contexte du problème d'origine, cette expression serait de savoir si l'entrée de l'utilisateur correspond à une condition de sortie souhaitée.

Voici une version modifiée du code fourni qui implémente correctement la fonctionnalité souhaitée :

func sample() {
  for ok := true; ok; ok = (input != 2) {
    fmt.Println("Press 1 to run")
    fmt.Println("Press 2 to exit")
    var input int
    fmt.Scanln(&input)

    switch input {
    case 1:
      fmt.Println("hi")
    case 2:
      // Exit the program
      os.Exit(2)
    default:
      fmt.Println("def")
    }
  }
}

Dans ce code, la boucle continue jusqu'à ce que l'utilisateur saisisse 2 (pour quitter). Si l'entrée est 1, il exécute l'instruction "hi". Si l'entrée est autre chose, elle exécute l'instruction "def".

Notez que vous pouvez remplacer os.Exit(2) par un appel explicite pour revenir pour quitter la fonction plus tôt.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn