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 중국어 웹사이트의 기타 관련 기사를 참조하세요!