Dans GO, les instructions break
et continue
sont utilisées pour contrôler l'écoulement des boucles telles que for
, range
et switch
. Voici comment ils fonctionnent:
Déclaration de rupture:
L'instruction break
est utilisée pour mettre fin à l'exécution d'une boucle prématurément. Lorsque break
est rencontrée à l'intérieur d'une boucle, la boucle est immédiatement sortie et le contrôle du programme reprend à l'instruction suivante suivant la boucle.
<code class="go">for i := 0; i </code>
Dans cet exemple, la boucle imprimera les numéros 0 à 4 puis sortira lorsque i
5.
Continuer la déclaration:
L'instruction continue
est utilisée pour ignorer le reste de l'itération actuelle de la boucle et passer à la prochaine itération. Lorsque continue
est rencontrée à l'intérieur d'une boucle, l'itération actuelle est abandonnée et la boucle procède à la prochaine itération.
<code class="go">for i := 0; i </code>
Dans cet exemple, la boucle imprimera les numéros 0 à 4 et 6 à 9, en sautant le numéro 5.
break
et continue
peuvent être utilisées dans des boucles imbriquées. Cependant, ils n'affectent que la boucle la plus intérieure dont ils font partie à moins d'être utilisé avec des étiquettes pour contrôler les boucles extérieures.
L'énoncé break
est couramment utilisé dans la programmation GO dans les scénarios suivants:
Sortir des boucles infinies: Lorsque vous souhaitez créer une boucle infinie qui peut être arrêtée dans certaines conditions, break
peut être utilisée pour quitter la boucle.
<code class="go">for { input := getInput() if input == "exit" { break } processInput(input) }</code>
Recherche dans les collections: lors de l'itération d'une collection (comme un tableau ou une tranche) et que vous devez trouver un élément spécifique, vous pouvez utiliser break
pour arrêter de rechercher une fois l'élément trouvé.
<code class="go">numbers := []int{1, 2, 3, 4, 5} target := 3 for _, num := range numbers { if num == target { fmt.Println("Found:", target) break } }</code>
Correspondance de cas dans Instructions Switch: L'instruction break
dans GO est implicitement ajoutée à la fin de chaque cas dans une instruction switch
, mais elle peut être utilisée explicitement dans les instructions switch
pour quitter la structure switch
entière prématurément.
<code class="go">switch num := 3; num { case 1: fmt.Println("One") case 2: fmt.Println("Two") case 3: fmt.Println("Three") break // Not needed explicitly here but can be used in some scenarios default: fmt.Println("Other") }</code>
La sortie des boucles imbriquées: avec l'utilisation d'étiquettes, break
peut être utilisée pour sortir des boucles imbriquées.
<code class="go">OuterLoop: for i := 0; i </code>
L'énoncé continue
dans GO affecte directement l'exécution d'une boucle de la manière suivante:
Sauter l'itération actuelle: lorsque continue
est rencontrée dans le corps d'une boucle, elle passe immédiatement à l'itération suivante de la boucle. Toutes les déclarations après continue
dans la même itération sont ignorées.
<code class="go">for i := 0; i </code>
Dans cet exemple, la sortie sera 0
, 1
, 3
, 4
. Le numéro 2
est ignoré car l'instruction continue
entraîne l'abandon de l'itération actuelle lorsque i
suis 2
.
Dans les boucles imbriquées: l'instruction continue
n'affecte que la boucle la plus intérieure dans laquelle il apparaît. Il n'affecte pas les boucles extérieures.
<code class="go">for i := 0; i </code>
Dans cet exemple, lorsque j
est égal 1
, l'itération actuelle de la boucle intérieure est ignorée, passant à la valeur j
suivante. La boucle extérieure continue comme d'habitude.
Efficacité du traitement des boucles: continue
peut être utile pour sauter un traitement inutile ou manipuler des exceptions dans des boucles, améliorant ainsi l'efficacité de la boucle.
<code class="go">numbers := []int{1, -2, 3, -4, 5} for _, num := range numbers { if num </code>
Dans ce cas, les nombres négatifs sont ignorés et seuls les nombres positifs sont imprimés, ce qui entraîne un traitement de boucle plus efficace.
Les principales différences entre les instructions break
et continue
dans les boucles GO sont:
Effet sur l'exécution de la boucle:
break
termine immédiatement la boucle entière, en quittant la boucle et en passant à l'instruction suivante suivant la boucle.continue
à sauter le reste de l'itération actuelle et passe à la prochaine itération de la boucle.Cas d'utilisation:
break
est généralement utilisée lorsque vous devez quitter complètement une boucle lors de la rencontre d'une certaine condition (par exemple, trouver un élément, atteindre une limite).continue
est utilisé lorsque vous souhaitez ignorer l'itération actuelle mais continuer avec la boucle (par exemple, sauter certaines valeurs, en évitant le traitement inutile).Impact sur les boucles imbriquées:
break
et continue
seulement la boucle la plus intérieure dont ils font partie.break
peut quitter n'importe quelle boucle extérieure, tandis que continue
peut passer à la prochaine itération de n'importe quelle boucle extérieure.Débit de contrôle:
break
change le flux de contrôle en terminant la boucle, souvent utilisée pour la terminaison précoce.continue
maintient le flux de la boucle mais modifie l'itération actuelle, utile pour le filtrage ou le traitement sélectif.Voici un résumé dans un format tabulaire:
Aspect | break
|
continue
|
---|---|---|
Effet d'exécution de boucle | Termine immédiatement la boucle | Saute le reste de l'itération actuelle |
Cas d'utilisation typique | Quitter la boucle sur une condition | Sauter une itération dans une condition spécifique |
Impact sur les boucles imbriquées | Affecte uniquement la boucle la plus intérieure (sauf si étiquetée) | Affecte uniquement la boucle la plus intérieure (sauf si étiquetée) |
Changement de flux de contrôle | Quitte la boucle | Passe à la prochaine itération |
Comprendre ces différences aide à choisir la bonne déclaration pour contrôler efficacement le comportement de boucle en Go.
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!