高效率退出C#巢狀循環
在程式設計中,巢狀循環常用於迭代多個集合或執行複雜的計算。然而,有時您可能需要提前退出內循環和外循環,這可能會帶來性能和效率的挑戰。
問題:
如果您有一個嵌套的for循環,並且想要有效率地退出兩個循環(內循環和外循環),最快的方法是什麼?您可能會因為效能問題或風格偏好而猶豫是否使用布林值或goto語句。
解:
雖然可以使用goto語句,但它通常被認為是一種過時且低效的方法。考慮以下替代方案:
1. 匿名方法 (C#):
匿名方法可讓您定義函數而不指定其名稱。這在您需要建立自訂循環行為而無需完整的函數聲明開銷的情況下非常有用。在匿名方法中,您可以使用return語句退出內循環和外循環。
範例:
<code class="language-csharp">// 匿名方法 Action work = delegate { for (int x = 0; x < 10; x++) { for (int y = 0; y < 10; y++) { if (/* 退出条件 */) return; } } }; work();</code>
2. 局部函數 (C# 7以上):
局部函數是C# 7中引入的一項功能,可讓您在其他方法內宣告函數。這提供了與匿名方法類似的效果,但語法更簡潔、更具表達性。
範例:
<code class="language-csharp">// 局部函数(在另一个方法内部声明) void Work() { for (int x = 0; x < 10; x++) { for (int y = 0; y < 10; y++) { if (/* 退出条件 */) return; } } }</code>
這些方法提供了高效且優雅的方式來在一行程式碼中退出巢狀循環。它們可用於需要提前終止循環執行並繼續執行程式碼的下一部分的情況。
以上是如何有效打破C#中的嵌套循環?的詳細內容。更多資訊請關注PHP中文網其他相關文章!