C

제어문 - while / do while문

1space 2025. 6. 12. 18:28

while문 설명

  • 형식:
while(조건)
{
반복 수행할 문장;
}
  • 의미:
    while문은 "조건이 참인 동안" 반복 실행하는 반복문이다.
    조건이 처음부터 거짓이면 한 번도 실행되지 않는다.
  • 중요한 특징:
    • 조건을 먼저 검사한다.
    • 조건이 거짓이면 처음부터 실행 안 됨.
    • 초기값, 조건, 증감은 직접 작성해야 함.
 
int i = 1, sum = 0;
while(i <= 100)
{ 
    sum += i;
    i++;
}
  • i가 1부터 100까지 올라가면서 그 값을 계속 sum에 더한다.
  • i가 101이 되는 순간 조건 i <= 100이 거짓이 되므로 while문 종료.
  • 결과적으로 1 + 2 + ... + 100 = 5050을 sum에 저장하게 됨.

 

do~while문 설명

  • 형식:
do 
{
반복 수행할 문장; 
} 
while(조건);
  • 의미:
    do~while문은 "일단 한 번 실행하고 나서" 조건을 검사하는 반복문이다.
  • 차이점:
    • 조건이 거짓이어도 최소 한 번은 무조건 실행
    • while 뒤에 반드시 세미콜론(;)을 붙여야 함 ← 중요!
 
int i = 1, sum = 0;
do 
{
    sum += i;
    i++; 
}
while(i <= 100);
  • 실행 흐름:
    1. sum += i 실행 (i = 1)
    2. i++ → i = 2
    3. i <= 100 조건 검사 → 참이면 반복
    4. ... 계속 반복하다가 i = 101이면 종료
  • 이 코드도 결국 1~100 합 = 5050 출력

 

while vs do~while 차이 정리표

조건 검사 시점 실행 전 실행 후
조건이 처음부터 거짓이면 실행 0번 무조건 1번 실행
세미콜론 필요 여부 없음 while(조건);에서 필요

 

 

예제 비교: 조건이 거짓일 때

while문

int i = 101; 
while(i <= 100) 
{
    printf("%d\n", i);
}

출력 없음 (조건 거짓 → 실행 안 됨)

do~while문

int i = 101;
do 
{
printf("%d\n", i); 
} 
while(i <= 100);

출력: 101 (일단 한 번 실행하고 조건 검사)

 

언제 어떤 반복문을 쓰는 게 좋을까?

반복 횟수가 정해져 있음 (ex. 10번 반복) for문 초기화/조건/증감 한 줄에 깔끔
반복 조건이 정해지지 않음 (ex. 사용자 입력받기) while문 조건을 외부에서 제어하기 쉬움
최소 한 번은 실행해야 하는 경우 (ex. 메뉴 보여주기) do~while문 조건이 나중에 검사되기 때문
 

'C' 카테고리의 다른 글

난수 생성  (0) 2025.06.12
입출력 함수와 버퍼  (0) 2025.06.12
제어문 - for / 이중for문  (0) 2025.06.12
제어문 - if / switch문  (0) 2025.06.11
이동 연산자  (0) 2025.06.11