Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 무한 루프(Infinite Loop)를 만드는 방법

무한 루프(Infinite Loop)란 종료 조건이 충족되지 않아 프로그램이 끝나지 않고 계속해서 반복 실행되는 루프를 말합니다. 의도적으로 특정 작업을 지속적으로 수행해야 할 때 사용되기도 하지만, 실수로 발생할 경우 프로그램이 멈추거나 시스템 리소스를 과도하게 소모하는 원인이 될 수 있습니다.

그렇다면 C#에서는 어떻게 무한 루프를 만들 수 있을까요? 아래 예제를 통해 살펴보겠습니다.

C# 무한 루프 예제

using System;
namespace Demo {
    class Program {
        static void Main(string[] args) {
            for (int a = 0; a < 50; a--) {
                Console.WriteLine("value : {0}", a);
            }
            Console.ReadLine();
        }
    }
}

코드 분석

위 코드에서 루프는 조건식 a < 50이 참인 동안 계속 실행됩니다. 변수 a의 초기값은 다음과 같이 0으로 설정됩니다.

int a = 0;

그런데 증감식이 일반적인 증가(a++)가 아니라 감소 연산자로 작성되어 있습니다.

a--;

즉, 매 반복(iteration)마다 a의 값은 1씩 감소합니다. 따라서 a의 값은 절대 50 이상이 될 수 없으며, 조건식 a < 50은 항상 참(true)을 반환하게 됩니다. 결국 루프는 종료되지 않고 무한히 반복되는 무한 루프가 되는 것입니다.

참고: 다른 방식의 무한 루프

무한 루프는 위와 같은 실수 형태 외에도 의도적으로 다음과 같이 작성할 수 있습니다.

// while 문을 이용한 무한 루프
while (true) {
    // 반복 실행될 코드
}

// for 문을 이용한 무한 루프
for (;;) {
    // 반복 실행될 코드
}

이처럼 조건을 항상 참으로 유지하면 루프는 영원히 종료되지 않습니다. 서버 애플리케이션의 이벤트 대기 루프 등에서는 의도적으로 활용되지만, 일반적인 경우에는 반드시 적절한 탈출 조건(break 문 등)을 함께 설계해야 합니다.