首頁 >後端開發 >C++ >如何有效率地退出C#中的嵌套循環?

如何有效率地退出C#中的嵌套循環?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-17 04:11:09484瀏覽

How Can I Efficiently Exit Nested Loops in C#?

C#嵌套循環的有效退出方法

在處理巢狀循環時,常常需要事先同時退出所有循環。為此,可以使用幾種高效的技術。

Goto語句(不建議)

一種方法,雖然不可取,是使用goto語句:

<code class="language-c#">for (int i = 0; i < 10; i++)
{
    for (int j = 0; j < 10; j++)
    {
        if (/* 退出条件 */)
        {
            goto ExitLoops;
        }
    }
}
ExitLoops:;</code>

這種方法通常不被推薦,因為它難以閱讀且容易出錯。

匿名方法

更靈活的方法是將巢狀循環封裝在匿名方法中,並使用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>

在這種情況下,匿名方法中的return語句會導致立即退出兩個巢狀迴圈。

局部函數(C# 7及更高版本)

從C# 7開始引入的局部函數提供了一種更優雅的解決方案:

<code class="language-c#">void Work()
{
    for (int x = 0; x < 10; x++)
    {
        for (int y = 0; y < 10; y++)
        {
            if (/* 退出条件 */)
            {
                return;
            }
        }
    }
}</code>

局部函數可讓您在一個方法內宣告另一個方法,因此可以使用return語句退出兩個循環,同時保持程式碼結構清晰。

以上是如何有效率地退出C#中的嵌套循環?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn