[C++]init-statementopt condition의 개념과 활용
init-statementopt condition는 프로그래밍 언어에서 반복문이나 제어 구조를 정의할 때 사용되는 구문 패턴을 말하며, 주로 C, C++, Java 같은 언어에서 for 반복문을 구성할 때 이 개념이 적용됩니다.
for 반복문의 구문 구조
for (init-statementopt; condition; expression) {
// 반복할 코드
}
여기서 init-statementopt와 condition은 각각 다음을 의미합니다.
1. init-statementopt (초기화 문)
반복문이 시작될 때 한 번 실행되는 초기화 문입니다. opt(optional)라는 표기가 있듯이 선택적으로 생략할 수 있습니다.
일반적으로 반복 카운터 변수를 선언하거나 초기화하는 데 사용됩니다.
for (int i = 0; ; ) // init-statement: int i = 0
2. condition (반복 조건)
반복문이 계속 실행될지 여부를 결정하는 조건식입니다. 이 조건이 true인 동안 반복이 계속됩니다.
만약 생략되면 조건이 항상 참(true)으로 간주되어 무한 루프가 발생합니다.
for ( ; i < 10; ) // condition: i < 10
위 코드에서는 i < 10이 반복문의 종료 여부를 결정합니다.
전체적인 예제
다음은 init-statement와 condition을 포함한 일반적인 for 반복문 예제입니다.
#include <iostream>
using namespace std;
int main() {
for (int i = 0; i < 10; i++) {
cout << i << endl;
}
return 0;
}
실행 과정
- int i = 0;이 처음 한 번 실행됨
- i < 10이 true인 동안 반복
- i++이 실행되어 i가 증가
- i가 10이 되면 i < 10이 false가 되어 반복문 종료
출력 결과
0
1
2
3
4
5
6
7
8
9
init-statement가 생략된 경우
초기화 문(init-statement)을 생략할 수도 있습니다. 이때 변수는 반복문 외부에서 선언되어 있어야 합니다.
#include <iostream>
using namespace std;
int main() {
int i = 0; // 반복문 전에 변수 초기화
for (; i < 10; i++) {
cout << i << endl;
}
return 0;
}
이 코드에서는 init-statement가 생략되었지만, i는 반복문 외부에서 선언되고 초기화되었습니다.
condition이 생략된 경우 (무한 루프)
만약 condition을 생략하면, 반복문이 무한 루프에 빠질 수 있습니다.
for (int i = 0; ; i++) {
cout << i << endl;
}
위 코드는 condition이 없으므로 항상 참(true)으로 간주되며, i가 무한히 증가하는 무한 루프가 됩니다.
이런 실수를 방지하려면 condition을 항상 명시하는 것이 좋습니다.
init-statement와 condition을 모두 생략한 경우
for (;;) {
cout << "무한 루프" << endl;
}
이 경우 for 반복문은 while (true)와 동일한 역할을 하며, 종료 조건이 없으므로 무한 루프가 됩니다.
요약
- init-statement는 반복문이 시작될 때 한 번 실행되며, 선택적으로 생략 가능
- condition은 반복이 계속될 조건을 지정하며, 생략 시 무한 루프 발생 가능
- for (;;) 형태로 사용하면 while (true)와 동일한 무한 루프가 됨
- for 반복문을 사용할 때 condition이 없을 경우 무한 루프가 될 수 있으므로 주의해야 함