개요
반복문(반복 제어문)은 프로그램의 지속성을 담당한다. 반복문에는 'for', 'while', 'do-while'이라는 세 가지 기본 유형의 루프가 있다. 각각은 서로 다른 목적으로 사용되며 고유한 이점을 제공한다.
오늘은 이 반복문에 대해서 알아보자
while 문
while문의 문법은 다음과 같다.
while (조건식) {
// 명령문
}
while문은 반복 횟수를 미리 정해져있지 않고 조건이 참인지 거짓인지에 따라 달라질때 사용한다.
명령문 코드 블럭으로 넘어가기 전 조건식을 확인 후 참이면 실행 아니라면 반복을 멈춘다.
do-while 문
do-while문의 문법은 다음과 같다.
do {
// 명령문
} while (조건식);
while문과 아주 유사하지만 차이점이 존재한다면 조건식이 뒤에 존재한다는 것이다.
따라서 우선 명령문 코드 블럭을 실행한 후 조건식을 확인한다. 즉, 조건에 관계없이 무조건 한 번 이상은 실행된다는 것이다.
for 문
for문의 문법은 다음과 같다.
for (초기절; 조건절; 반복절) {
// 명령문
}
// 사용 예
for (int i = 0; i < 5; i++) {
printf("반복 %d\n", i);
}
for문은 반복 횟수를 미리 파악할 수 있는 상황에서 주로 쓰인다.
for문은 세 부분으로 구성되며 초기절에서는 시작값을 설정한다. 조건절에서는 루프가 되는 조건을 설정한다. 반복절에서는 시작값이 증가하는지 줄어드는지를 설정하여 반복문이 빠져나올 수 있도록 숫자 제한을 걸어둔다.
요약
각 반복 제어문을 비교하면 이렇다.
이름 | 장점 | 단점 |
while | 유연하며 조건이 런타임 이벤트에 따라 달라지는 무한 루프에 이상적이며 사실상 프로그램의 지속성을 담당할때 주로 쓰인다. | 반복횟수가 미리 결정되어있지 않으므로 무한 루프에 빠져 안정성이 떨어질 수 있다. |
do-while | 반드시 한번 이상 실행하는것이 보장되어있다. | 잘 사용되지는 않으며 그다지 직관적이지 않을 수 있다. |
for | 읽기 쉬우며 반복횟수가 정해져 있어 안정성이 높다. | 반복횟수를 파악하기 어려울 경우 사용하기 어렵다. |
또한 반복 제어문 속 반복 제어문을 중첩하여 사용할 수 있는데 주로 반복 제어문을 처음 배우면 만드는 예제인 별 만들기에서도 쓰이는 만큼 기초적인 스킬이다.
// *를 1개부터 5개까지 출력하는 프로그램 예제
#include <stdio.h>
int main()
{
int n = 5;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= i; j++)
printf("*");
printf("\n");
}
}
▶실행결과
*
**
***
****
*****
결론
앞으로 프로그램을 작성하려면 어느 언어가 됐든간에 반복문을 이해하고 그 사용법을 익히는것은 필수적이다.
각각의 반복문의 특징과 그 사용법을 익힌다면 문제 상황에 직면했을때 유연하게 해결 할 수 있을것이다.