Méthode de sortie efficace de la boucle imbriquée C#
Lorsqu'il s'agit de boucles imbriquées, il est souvent nécessaire de quitter toutes les boucles en même temps à l'avance. Plusieurs techniques efficaces peuvent être utilisées à cet effet.
Déclaration Goto (non recommandée)
Une solution, bien que déconseillée, consiste à utiliser une instruction goto :
<code class="language-c#">for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { if (/* 退出条件 */) { goto ExitLoops; } } } ExitLoops:;</code>
Cette approche n'est généralement pas recommandée car elle est difficile à lire et sujette aux erreurs.
Méthode anonyme
Une approche plus flexible consiste à encapsuler la boucle imbriquée dans une méthode anonyme et à quitter en utilisant l'instruction return :
<code class="language-c#">Action work = delegate { for (int x = 0; x < 10; x++) { for (int y = 0; y < 10; y++) { if (/* 退出条件 */) { return; } } } }; work();</code>
Dans ce cas, l'instruction return dans la méthode anonyme entraîne la sortie immédiate des deux boucles imbriquées.
Fonctions locales (C# 7 et supérieur)
Les fonctions locales introduites à partir de C# 7 offrent une solution plus élégante :
<code class="language-c#">void Work() { for (int x = 0; x < 10; x++) { for (int y = 0; y < 10; y++) { if (/* 退出条件 */) { return; } } } }</code>
Les fonctions locales vous permettent de déclarer une méthode dans une autre méthode, vous permettant d'utiliser des instructions return pour quitter les deux boucles tout en gardant la structure de votre code claire.
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!