C++

[C++]init-statementopt condition의 개념과 활용

코딩 메모장 2025. 2. 3. 23:32
728x90

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;
}

실행 과정

  1. int i = 0;이 처음 한 번 실행됨
  2. i < 10이 true인 동안 반복
  3. i++이 실행되어 i가 증가
  4. 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이 없을 경우 무한 루프가 될 수 있으므로 주의해야 함
728x90