while 문

AI
qwen-3-235b-a22b-instruct-2507
작성자
익명
작성일
2025.09.20
조회수
2
버전
v1

while 문

개요while 문은 프래밍에서 반복 제어조의 하나로, 특정 조이 참(true)인 동안 코드 블록을 반복하는 데 사용됩니다. 조건은 각 반복 시작 전에 평가되며, 조건이 거짓(false)이 되면 반복이 종료됩니다. while 문은 반복 횟수가 사전 정해지지 않은 상황에서 특히 유용하며, 다양한 프로그래밍 언어(C, Java, Python, JavaScript 등)에서 공통적으로 지원하는 핵심 문법 요소입니다.

이 문서에서는 while 문의 기본 구조, 동작 원리, 사용 예시, 주의사항, 그리고 관련된 고급 개념을 다룹니다.


기본 구조

while 문의 일반적인 구조는 다음과 같습니다:

while 조건:
    # 조건이 참일 동안 반복할 코드

  • 조건: 불리언 표현식(Boolean expression)으로, true 또는 false를 반환해야 합니다.
  • 코드 블록: 조건이 참일 경우 실행되는 문장들의 집합입니다. 들여쓰기(인덴트)로 구분됩니다 (Python 기준).

다른 언어에서도 유사한 형태를 취하지만, 구문이 다를 수 있습니다.

예시: Python에서의 while 문

count = 0
while count < 5:
    print(f"현재 카운트: {count}")
    count += 1

이 코드는 count가 5보다 작을 동안 반복되며, 출력 결과는 다음과 같습니다:

현재 카운트: 0
현재 카운트: 1
현재 카운트: 2
현재 카운트: 3
현재 카운트: 4


동작 원리

while 문은 다음과 같은 순서로 동작합니다:

  1. 조건 평가: 반복 시작 전에 조건을 먼저 평가합니다.
  2. 조건이 참일 경우: 코드 블록을 실행합니다.
  3. 반복: 코드 블록 실행 후 다시 조건을 평가합니다.
  4. 조건이 거짓일 경우: 반복을 종료하고 다음 코드로 진행합니다.

이러한 동작 방식은 사전 검사 루프(pre-test loop)라고도 불립니다. 즉, 반복 전에 조건을 확인하므로, 조건이 처음부터 거짓이면 코드 블록이 한 번도 실행되지 않을 수 있습니다.


while 문의 종류 및 변형

1. 무한 루프 (Infinite Loop)

조건이 항상 참인 경우, while 문은 무한히 반복됩니다.

while True:
    print("이것은 무한 루프입니다.")
    # 종료 조건 없음 → 무한 반복

무한 루프는 [break](/doc/%EA%B8%B0%EC%88%A0/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/%EC%A0%9C%EC%96%B4%20%ED%9D%90%EB%A6%84/break) 문을 사용해 의도적으로 종료해야 합니다.

while True:
    user_input = input("종료하려면 'quit' 입력: ")
    if user_input == "quit":
        break

2. do-while 문과의 차이

일부 언어(예: C, Java)는 do-while 문을 제공합니다. 이는 사후 검사 루프(post-test loop)로, 조건을 평가하기 전에 코드 블록을 한 번은 반드시 실행합니다.

// C 언어의 do-while 예시
int i = 0;
do {
    printf("%d\n", i);
    i++;
} while (i < 5);

Python은 do-while을 직접 지원하지 않지만, while Truebreak를 조합해 유사한 동작을 구현할 수 있습니다.


주요 사용 사례

1. 사용자 입력 처리

사용자가 특정 값을 입력할 때까지 반복 대기:

password = ""
while password != "1234":
    password = input("비밀번호를 입력하세요: ")
print("접속 허용!")

2. 게임 루프

게임 프로그램에서 주로 사용되는 무한 루프 패턴:

game_running = True
while game_running:
    # 게임 로직 처리
    action = input("행동을 선택하세요 (종료: quit): ")
    if action == "quit":
        game_running = False

3. 데이터 처리

파일이나 스트림에서 데이터를 모두 읽을 때까지 반복:

line = file.readline()
while line:
    process(line)
    line = file.readline()


주의사항 및 흔한 실수

1. 무한 루프에 빠지는 경우

조건이 절대 거짓이 되지 않도록 코드를 작성하면 무한 루프가 발생합니다.

count = 0
while count < 5:
    print(count)
    # count += 1 빠짐 → 무한 출력

2. 조건 업데이트 누락

반복 변수(예: 카운터)를 업데이트하지 않으면 루프가 끝나지 않습니다.

3. 성능 고려

while 루프 내에서 조건 계산이 복잡하거나 I/O 작업이 반복되면 성능 저하가 발생할 수 있습니다. 가능하면 조건을 단순화하고, 불필요한 연산은 피해야 합니다.


관련 개념

개념 설명
break 루프를 즉시 종료합니다.
[continue](/doc/%EA%B8%B0%EC%88%A0/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/%EC%A0%9C%EC%96%B4%20%ED%9D%90%EB%A6%84/continue) 현재 반복을 건너뛰고 다음 조건 평가로 이동합니다.
else 블록 (Python) while 루프가 정상 종료될 경우 실행됩니다. break로 종료된 경우 실행되지 않음.

count = 0
while count < 3:
    print(count)
    count += 1
else:
    print("루프가 정상 종료되었습니다.")


참고 자료 및 관련 문서

관련 문서: - for 문 - 반복문 - 조건문 - 제어 흐름


while 문은 프로그래밍의 기초이자 핵심 요소로, 반복적인 작업을 효율적으로 처리하는 데 필수적인 도구입니다. 올바른 조건 설정과 반복 제어를 통해 강력한 로직을 구현할 수 있습니다.

AI 생성 콘텐츠 안내

이 문서는 AI 모델(qwen-3-235b-a22b-instruct-2507)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?