for each
, in
배열 또는 컬렉션을 반복합니다. 이 비표준 키워드는 C++/CLI 및 네이티브 C++ 프로젝트에서 모두 사용할 수 있습니다. 그러나 표준 범위 기반 for Statement(C++) 를 사용하는 것이 좋습니다.
모든 런타임
구문
for each (
type
identifier
in
expression
) {
statements
}
매개 변수
type
identifier
의 형식입니다.
identifier
반복 변수는 컬렉션 요소를 나타냅니다. 추적 참조 연산자인 경우 identifier
요소를 수정할 수 있습니다.
expression
배열 식 또는 컬렉션입니다. 컬렉션 요소는 컴파일러가 identifier
형식으로 변환할 수 있어야 합니다.
statements
실행할 하나 이상의 문입니다.
설명
for each
문은 컬렉션을 반복하는 데 사용됩니다. 컬렉션의 요소를 수정할 수 있지만 요소를 추가하거나 삭제할 수는 없습니다.
statements
배열 또는 컬렉션의 각 요소에 대해 실행됩니다. 컬렉션의 모든 요소에 대해 반복이 완료된 후 제어가 for each
블록 다음 문으로 전달됩니다.
for each
컨텍스트 in
를 구분하는 키워드입니다.
Windows Runtime
요구 사항
컴파일러 옵션: /ZW
예시
이 예제는 for each
를 사용해서 문자열을 반복하는 방법을 보여줍니다.
// for_each_string1.cpp
// compile with: /ZW
#include <stdio.h>
using namespace Platform;
ref struct MyClass
{
property String^ MyStringProperty;
};
int main()
{
String^ MyString = ref new String("abcd");
for each ( char c in MyString )
{
wprintf("%c", c);
}
wprintf("\n");
MyClass^ x = ref new MyClass();
x->MyStringProperty = "Testing";
for each( char c in x->MyStringProperty )
{
wprintf("%c", c);
}
}
abcd
Testing
공용 언어 런타임
설명
CLR 구문은 다음과 같이 모든 런타임 구문과 동일합니다.
expression
관리되는 배열 식 또는 컬렉션입니다. 컬렉션 요소는 컴파일러에서 형식으로 변환 Object 할 identifier
수 있도록 해야 합니다.
expression
는 구현하는 형식 또는 정의된 모든 메서드를 구현 IEnumerableIEnumerable<T>IEnumerator 하거나 선언하는 형식을 반환하는 메서드를 정의하는 GetEnumerator
형식으로 계산됩니다.IEnumerator
요구 사항
컴파일러 옵션: /clr
예시
이 예제는 for each
를 사용해서 문자열을 반복하는 방법을 보여줍니다.
// for_each_string2.cpp
// compile with: /clr
using namespace System;
ref struct MyClass
{
property String ^ MyStringProperty;
};
int main()
{
String ^ MyString = gcnew String("abcd");
for each ( Char c in MyString )
{
Console::Write(c);
}
Console::WriteLine();
MyClass ^x = gcnew MyClass();
x->MyStringProperty = "Testing";
for each( Char c in x->MyStringProperty )
{
Console::Write(c);
}
}
abcd
Testing