목차
반복문이란?
C언어에서는 코드를 반복적으로 실행하기 위해 세 가지 주요 반복문을 제공합니다. for, while, 그리고 do-while입니다.
for 문
for문은 초기화, 조건 검사, 그리고 반복 후 작업을 한 곳에서 처리합니다. 이는 일정 횟수만큼 반복을 수행해야 하는 경우에 주로 사용됩니다.
for (초기화; 조건; 반복 후 작업) {
// 반복적으로 실행할 코드
}
예를 들어, 0부터 9까지의 숫자를 출력하는 for문은 다음과 같습니다.
for (int i = 0; i < 10; i++) {
printf("%d\n", i);
}
while문
while문은 주어진 조건이 참인 동안 코드 블록을 반복적으로 실행합니다. 이는 조건이 만족되는 동안 계속해서 반복을 수행해야 하는 경우에 주로 사용됩니다.
while (조건) {
// 반복적으로 실행할 코드
}
예를 들어, 어떤 변수 x가 0이 아닌 동안 계속해서 x를 2로 나누는 while문은 다음과 같습니다.
while (x != 0) {
x /= 2;
}
do-while문
do-while문은 코드 블록을 먼저 실행한 후에 조건을 검사합니다. 따라서 코드 블록은 최소한 한 번은 실행됩니다.
do {
// 반복적으로 실행할 코드
} while (조건);
예를 들어, 사용자로부터 입력을 받아 0이 입력될 때까지 계속해서 입력을 요청하는 do-while문은 다음과 같습니다.
int x;
do {
printf("Enter a number: ");
scanf("%d", &x);
} while (x != 0);
이러한 반복문들은 각각의 장단점과 적절한 사용 사례가 있으므로, 상황에 따라 적절한 반복문을 선택하는 것이 중요합니다.
반복문 주의 사항
- 무한 루프: 조건이 항상 참인 경우, while 또는 for 루프는 무한히 반복될 수 있습니다. 이는 프로그램이 멈추게 만들 수 있으므로, 반복문의 조건이 결국에는 거짓이 될 수 있도록 항상 확인해야 합니다.
- 루프 변수의 업데이트: for 루프나 while 루프를 사용할 때, 루프 변수의 값을 적절히 업데이트하는 것이 중요합니다. 그렇지 않으면 루프가 예상대로 동작하지 않을 수 있습니다.
- 배열 인덱스: 배열을 반복 처리할 때, 인덱스가 배열의 범위를 벗어나지 않도록 주의해야 합니다. 그렇지 않으면 메모리 오버런이 발생할 수 있습니다.
- 중첩 루프: 루프 내부에 또 다른 루프(중첩 루프)를 사용할 때는, 각 루프의 변수 이름이 겹치지 않도록 주의해야 합니다.
- break와 continue: break와 continue 키워드는 루프의 흐름을 제어하는 데 유용하지만, 남용하면 코드를 이해하기 어렵게 만들 수 있습니다. 이들 키워드는 필요할 때만 사용해야 합니다.
- 사이드 이펙트: 루프 내에서 변수를 변경하면, 이는 루프 외부에서도 영향을 미칩니다. 이러한 사이드 이펙트는 때때로 원치 않는 결과를 초래할 수 있으므로 주의해야 합니다.
** 이 글이 좋았다면 좋아요와 구독을 눌러주세요. **