티스토리 뷰

반응형

 

C언어 기초 Chapter 07: 반복문 while / do~while / for 완전 정리


07-1. while문을 이용한 문장의 반복

기본 구조

while (조건식) {
    반복 실행할 문장;
}
  • 조건식이 참(true) 이면 블록 실행
  • 조건식이 거짓(false) 이면 반복 종료

예제:

#include <stdio.h>
int main(void) {
    int i = 1;
    while (i <= 5) {
        printf("%d ", i);
        i++;
    }
    return 0;
}

👉 출력: 1 2 3 4 5


무한 루프

while (1) {
    printf("무한 반복!\n");
    break;  // 특정 조건에서 탈출 필요
}

⚠️ while(1) 은 종료 조건을 따로 만들어줘야 함


07-2. do~while문을 이용한 문장의 반복

기본 구조

do {
    반복 실행할 문장;
} while (조건식);
  • 최소 1번은 무조건 실행
  • 조건 검사 → 참이면 다시 실행

예제:

#include <stdio.h>
int main(void) {
    int num;
    do {
        printf("양수를 입력하세요: ");
        scanf("%d", &num);
    } while (num <= 0);
    printf("입력한 수: %d\n", num);
    return 0;
}

👉 while 과 달리 조건이 처음부터 거짓이어도 1회 실행


07-3. for문을 이용한 문장의 반복

기본 구조

for (초기식; 조건식; 증감식) {
    반복 실행할 문장;
}

예제:

#include <stdio.h>
int main(void) {
    for (int i = 1; i <= 5; i++) {
        printf("%d ", i);
    }
    return 0;
}

👉 출력: 1 2 3 4 5


다양한 활용

  1. 감소 반복
for (int i = 10; i > 0; i--) {
    printf("%d ", i);
}
  1. 중첩 for문 (구구단)
for (int i = 2; i <= 9; i++) {
    for (int j = 1; j <= 9; j++) {
        printf("%d x %d = %d\n", i, j, i*j);
    }
}

반복 제어 키워드

  • break → 반복문 강제 종료
  • continue → 아래 코드 건너뛰고 다음 반복 진행

예제:

for (int i = 1; i <= 10; i++) {
    if (i == 5) continue; // 5 건너뜀
    if (i == 8) break;    // 8에서 종료
    printf("%d ", i);
}

👉 출력: 1 2 3 4 6 7


핵심 정리 ✅

  • while: 조건 먼저 검사 → 반복
  • do~while: 최소 한 번 실행 후 조건 검사
  • for: 반복 횟수 명확할 때 가장 많이 사용
  • break, continue 로 반복 제어 가능

연습 문제 ✍️

  1. 1부터 100까지 합을 while문으로 구해보세요.
  2. 사용자에게 계속 정수를 입력받다가 0 입력 시 종료하는 do~while 프로그램을 작성하세요.
  3. for문으로 별 피라미드 출력하기
*
**
***
****
*****
  1. 1~50 중에서 짝수만 출력하되, continue를 활용해 보세요.

👉 정답? ▼


C언어 기초 Chapter 07: 반복문 while / do~while / for 완전 정리 + 연습문제 해설


반복문 기본 복습

  • while : 조건을 먼저 검사하고 반복
  • do~while : 최소 한 번 실행 후 조건 검사
  • for : 반복 횟수가 명확할 때 사용
  • break / continue : 반복 제어

연습문제 풀이 ✍️

1) 1부터 100까지 합 (while문)

#include <stdio.h>
int main(void) {
    int i = 1, sum = 0;
    while (i <= 100) {
        sum += i;
        i++;
    }
    printf("1부터 100까지의 합 = %d\n", sum);
    return 0;
}

👉 출력: 5050


2) 정수 입력받다가 0 입력 시 종료 (do~while문)

#include <stdio.h>
int main(void) {
    int num;
    do {
        printf("정수를 입력하세요 (0 입력 시 종료): ");
        scanf("%d", &num);
        if (num != 0)
            printf("입력한 값: %d\n", num);
    } while (num != 0);
    printf("프로그램 종료!\n");
    return 0;
}

3) 별 피라미드 (for문)

#include <stdio.h>
int main(void) {
    for (int i = 1; i <= 5; i++) {
        for (int j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}

👉 출력:

*
**
***
****
*****

4) 1~50 중 짝수만 출력 (continue 활용)

#include <stdio.h>
int main(void) {
    for (int i = 1; i <= 50; i++) {
        if (i % 2 != 0) continue;  // 홀수는 건너뜀
        printf("%d ", i);
    }
    return 0;
}

👉 출력: 2 4 6 ... 50


핵심 정리 ✅

  • 반복문은 프로그램의 자동화와 효율성의 핵심
  • while은 조건 중심, do~while은 최소 1회 실행, for는 횟수 중심
  • break와 continue로 흐름 제어 가능
  • 작은 예제들을 직접 실행해 보는 것이 가장 빠른 학습법!

 

반응형