다음을 통해 공유


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
관리되는 배열 식 또는 컬렉션입니다. 컬렉션 요소는 컴파일러에서 형식으로 변환 Objectidentifier 수 있도록 해야 합니다.

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

참고 항목

런타임 플랫폼용 구성 요소 확장
범위 기반 for 문(C++)