> 백엔드 개발 > C++ > C#에서 중첩 루프를 효율적으로 중단하는 방법은 무엇입니까?

C#에서 중첩 루프를 효율적으로 중단하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2025-01-17 04:17:07
원래의
500명이 탐색했습니다.

How to Efficiently Break Out of Nested Loops in C#?

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿