Maison >développement back-end >C++ >Comment puis-je quitter efficacement les boucles imbriquées en C# ?

Comment puis-je quitter efficacement les boucles imbriquées en C# ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-17 04:11:09484parcourir

How Can I Efficiently Exit Nested Loops in C#?

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!

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