반복문 (Loop)
반복문은 특정 코드가 여러 번 실행되도록 만들 때 사용하는 제어문이다.
반복문의 종류는 크게 다음과 같다.
forwhiledo-while
for문
정수 기반의 반복 횟수를 제어할 때 사용하는 반복문이다.
왜 주로 정수를 사용할까?
반복 횟수는 정확해야 한다.
float 또는 double은 부동소수점 오차가 발생할 수 있기 때문에 반복 횟수가 예상과 다를 수 있다.
for (float i = 0; i < 1.0f; i += 0.1f)
{
// 오차가 발생할 수 있음
}
이 경우 10번 반복을 기대했지만 실제로는 다르게 동작할 수 있다.
따라서 반복 횟수를 제어할 때는 보통 int를 사용한다.
기본 문법
for (초기식; 조건식; 증감식)
{
// 반복될 코드
}
예시
for (int i = 0; i < 10; i++)
{
cout << i << endl;
}
동작 순서
for (int i = 0; i < 10; i++)
{
cout << i << endl;
}
1단계
int i = 0;
초기화
2단계
i < 10
조건 검사
참이면 코드 실행
3단계
cout << i << endl;
반복문 내부 실행
4단계
i++;
증감식 실행
5단계
다시 조건 검사
i < 10
참이면 반복
거짓이면 종료
실행 결과
0
1
2
3
4
5
6
7
8
9
for문의 특징
- 반복 횟수가 정해져 있을 때 사용한다.
- 배열 순회에 자주 사용한다.
- 숫자 카운트에 자주 사용한다.
- 알고리즘 문제에서 가장 많이 사용되는 반복문이다.
예시
int numbers[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++)
{
cout << numbers[i] << endl;
}
while문
조건식이 참인 동안 계속 반복되는 반복문이다.
기본 문법
while (조건식)
{
// 반복될 코드
}
예시
int hp = 5;
while (hp > 0)
{
cout << hp << endl;
hp--;
}
동작 순서
while (hp > 0)
{
cout << hp << endl;
hp--;
}
- 조건식 검사
- 참이면 코드 실행
- 코드가 끝나면 다시 조건식 검사
- 거짓이 될 때까지 반복
실행 결과
5
4
3
2
1
while문의 특징
- 반복 횟수를 모를 때 사용한다.
- 특정 조건이 만족될 때까지 반복할 때 사용한다.
- 게임 루프나 입력 검증에 자주 사용한다.
예시
while (true)
{
int input;
cin >> input;
if (input == 0)
break;
}
무한 루프
while (true)
{
// 계속 반복
}
조건이 항상 참이므로 영원히 반복된다.
보통 break를 이용해 종료한다.
do-while문
기본적으로 while과 같지만 조건을 검사하기 전에 코드를 먼저 실행한다.
즉, 조건이 거짓이어도 최소 한 번은 실행된다.
기본 문법
do
{
// 반복될 코드
}
while (조건식);
예시
int num = 1;
do
{
cout << num << endl;
num++;
}
while (num <= 5);
동작 순서
do
{
cout << num << endl;
}
while (조건식);
- 코드 실행
- 조건 검사
- 참이면 다시 실행
- 거짓이면 종료
실행 결과
1
2
3
4
5
while과 do-while의 차이
while
int num = 10;
while (num < 5)
{
cout << "실행";
}
실행 결과
출력 없음
조건이 처음부터 거짓이라 실행되지 않는다.
do-while
int num = 10;
do
{
cout << "실행";
}
while (num < 5);
실행 결과
실행
조건이 거짓이어도 한 번은 실행된다.
do-while 사용 예시
메뉴를 최소 한 번은 출력해야 할 때
int choice;
do
{
cout << "1. 시작" << endl;
cout << "0. 종료" << endl;
cin >> choice;
}
while (choice != 0);
반복문 비교
| 반복문 | 사용 시점 |
|---|---|
for |
반복 횟수가 정해져 있을 때 |
while |
종료 시점을 모를 때 |
do-while |
최소 한 번은 실행해야 할 때 |
정리
- 반복문은 코드를 여러 번 실행하기 위해 사용한다.
for는 반복 횟수가 정해져 있을 때 사용한다.while은 조건이 참인 동안 반복한다.do-while은 최소 한 번 실행한 후 조건을 검사한다.- 반복 횟수를 제어할 때는 보통
int를 사용한다. - 게임 루프나 입력 검증에는
while이 자주 사용된다.