반응형
6장: 반복문 (Loops)
6.1 반복문의 개요
반복문은 특정 조건이 참인 동안 동일한 작업을 반복적으로 수행하는 데 사용됩니다.
C 언어에서 사용할 수 있는 반복문은 다음과 같습니다:
- while문
- do-while문
- for문
6.2 while문
while문은 조건이 **참(1)**인 동안 반복적으로 실행됩니다.
기본 형식
while (조건) {
명령문;
}
작동 순서
- 조건을 검사.
- 조건이 참이면 블록을 실행.
- 조건이 거짓이면 반복문 종료.
예제
#include <stdio.h>
int main(void) {
int i = 1;
while (i <= 5) {
printf("i = %d\n", i);
i++; // 반복 조건을 갱신
}
return 0;
}
출력 결과:
i = 1
i = 2
i = 3
i = 4
i = 5
6.3 do-while문
do-while문은 조건을 나중에 검사하며, 최소 한 번은 블록을 실행합니다.
기본 형식
do {
명령문;
} while (조건);
예제
#include <stdio.h>
int main(void) {
int i = 1;
do {
printf("i = %d\n", i);
i++;
} while (i <= 5);
return 0;
}
출력 결과:
i = 1
i = 2
i = 3
i = 4
i = 5
특징
- 조건이 거짓이어도 블록이 한 번은 실행됩니다.
6.4 for문
for문은 반복 횟수가 정해진 경우 사용하기 적합합니다.
기본 형식
for (초기화; 조건; 갱신) {
명령문;
}
작동 순서
- 초기화 실행.
- 조건 검사. 참이면 블록 실행.
- 갱신 실행 후 다시 조건 검사.
예제
#include <stdio.h>
int main(void) {
for (int i = 1; i <= 5; i++) {
printf("i = %d\n", i);
}
return 0;
}
출력 결과:
i = 1
i = 2
i = 3
i = 4
i = 5
6.5 반복문 제어
반복문 실행 중 조건에 따라 제어가 필요할 때 사용합니다.
1. break
반복문을 즉시 종료합니다.
#include <stdio.h>
int main(void) {
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break; // 반복문 종료
}
printf("i = %d\n", i);
}
return 0;
}
출력 결과:
i = 1
i = 2
i = 3
i = 4
2. continue
반복문의 나머지 부분을 건너뛰고 다음 반복을 실행합니다.
#include <stdio.h>
int main(void) {
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue; // 아래 명령문 건너뜀
}
printf("i = %d\n", i);
}
return 0;
}
출력 결과:
i = 1
i = 2
i = 4
i = 5
6.6 반복문 활용 예제
1. 1부터 N까지의 합 구하기
#include <stdio.h>
int main(void) {
int n, sum = 0;
printf("정수를 입력하세요: ");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
sum += i;
}
printf("1부터 %d까지의 합: %d\n", n, sum);
return 0;
}
실행 결과:
정수를 입력하세요: 10
1부터 10까지의 합: 55
2. 구구단 출력
#include <stdio.h>
int main(void) {
int dan;
printf("출력할 구구단의 단을 입력하세요: ");
scanf("%d", &dan);
for (int i = 1; i <= 9; i++) {
printf("%d x %d = %d\n", dan, i, dan * i);
}
return 0;
}
실행 결과:
출력할 구구단의 단을 입력하세요: 3
3 x 1 = 3
3 x 2 = 6
...
3 x 9 = 27
3. 숫자 찾기 게임
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int secret, guess;
srand(time(0)); // 랜덤 시드 설정
secret = rand() % 100 + 1; // 1~100 사이의 숫자 생성
do {
printf("숫자를 맞춰보세요 (1~100): ");
scanf("%d", &guess);
if (guess < secret) {
printf("더 큰 숫자입니다.\n");
} else if (guess > secret) {
printf("더 작은 숫자입니다.\n");
}
} while (guess != secret);
printf("정답입니다! 숫자는 %d입니다.\n", secret);
return 0;
}
6.7 무한 루프
while을 사용한 무한 루프
while (1) {
// 반복 실행
}
for를 사용한 무한 루프
for (;;) {
// 반복 실행
}
주의사항
- 무한 루프는 반드시 break 조건을 추가해야 합니다.
반응형
'Computer Science > C 언어' 카테고리의 다른 글
[C #8] 배열 (Arrays) (1) | 2024.12.06 |
---|---|
[C #7] 기본 데이터 타입 (Basic Types) (1) | 2024.12.05 |
[C#5] 조건문 (Selection Statements) (1) | 2024.12.03 |
[C#4] 표현식 (Expressions) (0) | 2024.12.02 |
[C#3] 포맷 입력과 출력 (Formatted Input/Output) (0) | 2024.12.01 |