C# 개발 공부 3일

규수·2026년 2월 25일

개발 공부 일지

목록 보기
3/44

2일차에서 반복 횟수가 명확할 때 사용하는 for문에 대해 학습했다면, 오늘은 조건에 따라 반복 여부를 결정하는 while문과 do~while문에 대해 정리해 보겠습니다.

1) while

while문은 소괄호 안의 조건식이 참(True)인 동안 중괄호 안의 코드를 무한히 반복합니다. for문은 반복 횟수를 미리 지정하고 시작하는 경우가 많지만, while문은 특정한 조건이 충족될 때까지 로직을 계속해서 유지해야 하는 상황에 적합합니다.

여기서 주의할 점은 조건식이 항상 참일 경우 프로그램이 멈추지 않는 무한 루프(Infinite Loop)에 빠질 수 있다는 것입니다.
따라서 반복문 내부에서 조건식을 거짓으로 바꿀 수 있는 장치를 마련하거나, 특정 상황에서 break를 통해 코드 실행을 벗어나는 처리를 하는 등 전날에 배운 방어코드 관점에서 보았을 때 반드시 필요한 처리입니다.

void Start()
{
    int count = 0;

    // count가 5보다 작을 때까지만 반복
    while (count < 5)
    {
        Debug.Log("현재 카운트: " + count);
        count++; // 조건을 변화시키는 증감식
        => count가 1씩증가하기 때문에 총 5회 동안 코드 블록 실행
    }
}

2) do~while

do~while문은 while문과 동작 방식이 거의 비슷하지만, 아주 중요한 차이점이 하나 있습니다. 바로 조건을 검사하기 전에 본문 코드를 최소 한 번은 무조건 실행한다는 점입니다.

일반적인 while문은 시작부터 조건이 맞지 않으면 한 번도 실행되지 않지만, do~while문은 do 블록을 먼저 실행한 뒤 하단에서 조건을 체크합니다.
게임 개발에서는 일단 UI를 한 번 띄우거나 상대방과 공격을 서로 최소 1회 주고 받을 때, 데이터를 한 번 로드한 뒤, 그 결과에 따라 반복 여부를 결정해야 하는 상황에서 유용하게 쓰입니다.

void Start()
{
    int health = 0;

    // health가 0이라도 일단 한 번은 실행함
    do
    {
        Debug.Log("현재 체력: " + health + " - 로직을 1회 실행합니다.");
    } 
    while (health > 0);
        
    Debug.Log("조건을 만족하지 않아 반복을 종료합니다.");
}

오늘은 while과 do~while 두 가지 반복문의 차이와 활용법에 대해 배웠습니다.
while문은 조건을 먼저 확인하여 안전하게 진입할 때 유리하고, do~while문은 최소 1회의 실행을 보장받고 싶을 때 사용한다는 명확한 차이를 알 수 있었습니다.

특히 오늘 진행한 과제에서 while의 개념을 확실히 이해하고 넘어가지 않은 탓에 프로젝트가 무한루프에 빠져 죽는 현상이 한번 발생했었고 조건식을 수정하여 무한루프 현상을 해결할 수 있었습니다.
그만큼 탈출 조건을 꼼꼼히 설계하는 습관이 왜 중요한지 다시금 깨닫게 된 시간이었습니다..

0개의 댓글