문 (C++)
실행 문 및 루프 식 때까지 반복적으로 조건 식 false가 됩니다.대 범위에 따른 문의 대 한 자세한 내용은 범위 기반 for 문(C++).
for ( init-expression ; cond-expression ; loop-expression )
statement
설명
사용 된 for 문을 지정 된 횟수 만큼 실행 해야 하는 루프를 생성 합니다.
for 문 다음 표와 같이 세 개의 선택적 부분 구성 합니다.
루프 요소에 대 한
구문 이름 |
실행 하는 경우 |
내용 |
---|---|---|
초기화 식 |
앞의 다른 요소는 에 대 한 문.init 식 는 한 번만 실행 됩니다.컨트롤 다음에 가공 패스 조건 식. |
루프 인덱스를 초기화할 때 주로 사용.식 또는 선언 (c + +만)을 포함할 수 있습니다. |
조건 식 |
각 반복을 실행 하기 전에 문, 첫 번째 반복을 포함 합니다.문 경우에 실행 됩니다 조건 식 (0이 아닌) true로 평가 합니다. |
정수 계열 형식 또는 정수 계열 형식으로의 명확한 변환을 포함 하는 클래스 형식으로 계산 되는 식입니다.일반적으로 루프 종료 기준을 테스트 하는 데 사용 합니다. |
루프 식 |
각 반복의 끝에 문.후 루프 식 실행 되 면 조건 식 평가 됩니다. |
일반적으로 루프 인덱스를 증가 시키기 위해 사용 합니다. |
예를 들면 다음과 같습니다.
// for_statement1.cpp
#include <stdio.h>
int main() {
int i;
for ( i = 0 ; i < 2 ; i++ )
printf_s( "\n%d\n",i );
}
앞의 for 루프는 다음에 해당 하는 while 루프.
// for_statement2.cpp
#include <stdio.h>
int main()
{
int i = 0;
while ( i < 2 )
printf_s( "%d\n", i++ );
}
초기화 식 및 루프 식 구분 하 여 여러 개의 문을 포함할 수 있는 쉼표 연산자.예를 들면 다음과 같습니다.
// for_statment3.cpp
#include <stdio.h>
int main()
{
int i, j;
for ( i = 5, j = 10 ; i + j < 20; i++, j++ )
printf_s( "\n i + j = %d", (i + j) );
}
A for 루프를 종료 하는 경우는 중단, 반환, 또는 goto (레이블된 문 외부에 에 대 한 루프) 내 문 실행 됩니다.A 계속 문에서 for 루프의 현재 반복에만 종료 합니다.
경우 조건 식 입니다 생략이 참이 되 고 에 대 한 루프 하지 않고 종료 됩니다는 break, return, 또는 goto 내 문.
무한을 지정 하는 편리한 방법을 반복 사용 하는 for 문입니다:
for( ; ; )
{
// Statements to be executed.
}
하지만의 세 필드는 for 문을 초기화, 종료에 대 한 테스트에 대 한 일반적으로 사용 하 고 증가는 이러한 용도에 제한 되지 않습니다.예를 들어, 다음 코드 0부터 4 까지의 번호를 인쇄합니다.이 경우 문 null 문입니다.
// for_statement4.cpp
#include <stdio.h>
int main()
{
int i;
for( i = 0; i < 5; printf_s("%d\n", i), i++)
;
}
루프와 c + + 표준에 대 한
에 선언 된 변수는 c + + 표준 이라는 for 루프 후에 범위를 벗어난 이동 합니다의 for 루프가 종료 됩니다.예를 들면 다음과 같습니다.
for (int i = 0 ; i < 5 ; i++) {
// do something
}
// i is now out of scope under /Za or /Zc:forScope
기본적으로 아래 /Ze에서 선언 된 변수는 for 루프 때까지 범위에 남아 있는 for 상위 범위 끝입니다. for 루프.
/Zc: forscope 표준 동작과 /za를 지정 하지 않고도에서 for 루프를 선언한 변수를 사용 합니다.
또한 범위 차이 사용할 수 있습니다의 for 같이 /ze 변수 재선언 루프:
// for_statement5.cpp
int main(){
int i = 0; // hidden by var with same name declared in for loop
for ( int i = 0 ; i < 3; i++ ) {}
for ( int i = 0 ; i < 3; i++ ) {}
}
이 보다 긴밀 하 게 모방 하는 표준 동작에서 선언 된 변수는 for 루프에 선언 된 변수를 필요로 for 루프에서 루프를 완료 한 후 범위를 벗어난 이동 합니다.변수를 선언 하는 경우는 for 루프를 컴파일러가 내부적으로 촉진이 로컬 변수에 for 루프의 경우에 이미 같은 이름 가진 지역 변수 범위 바깥쪽.