Maison >développement back-end >C++ >« Goto » peut-il aider à quitter plusieurs boucles imbriquées lorsque « break » échoue ?

« Goto » peut-il aider à quitter plusieurs boucles imbriquées lorsque « break » échoue ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-04 13:12:12753parcourir

Can `goto` Help Exit Multiple Nested Loops When `break` Fails?

Sortie de plusieurs boucles imbriquées avec Break

Bien que l'imbrication de plusieurs boucles « for » soit une approche courante pour itérer sur des structures de données, quitter prématurément toutes les boucles peuvent parfois être nécessaires. Pouvons-nous utiliser la fonction 'break' à cette fin ?

Les limites de 'break'

Malheureusement, la fonction 'break' opère dans le cadre de son application immédiate boucle. L'appliquer pour sortir de plusieurs boucles imbriquées n'est pas efficace. Tenter de le faire met simplement fin à la boucle actuelle, laissant les boucles imbriquées inchangées.

Les arguments en faveur de « goto »

Ironiquement, la fidèle déclaration « goto », souvent mal vu dans les pratiques de programmation modernes, apparaît comme la solution appropriée pour ce scénario spécifique. Contrairement à « break », « goto » permet de sauter entre les blocs de code quel que soit leur niveau d'imbrication.

Contrôle de la profondeur de sortie de boucle

Contrôle du nombre de boucles sorties à l'aide 'goto' implique d'étiqueter les boucles et de spécifier l'étiquette appropriée comme destination 'goto'. Par exemple, pour quitter deux boucles imbriquées :

outer_loop:
  for (initialization1; condition1; increment1) {
    inner_loop:
      for (initialization2; condition2; increment2) {
        // Exit both loops
        if (condition) {
          goto outer_loop;
        }
      }
  }

En sautant vers l'étiquette associée à la boucle la plus externe, les deux boucles imbriquées se terminent immédiatement.

Ainsi, même si « break » ne convient pas pour en sortant de plusieurs boucles imbriquées, 'goto' fournit les fonctionnalités nécessaires, bien qu'avec une syntaxe moins gracieuse.

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