Partilhar via


for each, in

Itera por meio de uma matriz ou coleção. Essa palavra-chave não padrão está disponível em projetos C++/CLI e C++ nativos. No entanto, é preferível usar uma instrução for baseada em intervalo padrão (C++).

Todos os runtimes

Sintaxe

for each ( type identifier in expression ) {
statements
}

Parâmetros

type
O tipo de identifier.

identifier
A variável de iteração que representa o elemento da coleção. Quando identifier é um operador de referência de acompanhamento, você pode modificar o elemento.

expression
Uma expressão ou coleção de matriz. O elemento de coleção deve permitir que o compilador converta-o no tipo identifier.

statements
Uma ou mais instruções a serem executadas.

Comentários

A instrução for each é usada para iterar por meio de uma coleção. Você pode alterar os elementos em uma coleção, mas não pode adicionar ou excluir elementos.

Os statements são executados para cada elemento na matriz ou na coleção. Após a iteração ter sido concluída para todos os elementos na coleção, o controle é transferido para a próxima instrução que segue o bloco for each.

for each e in são palavras-chave sensíveis ao contexto.

Windows Runtime

Requisitos

Opção do compilador: /ZW

Exemplo

Este exemplo mostra como usar for each para iterar por meio de uma cadeia de caracteres.

// 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

Common Language Runtime

Comentários

A sintaxe CLR é a mesma sintaxe de Todos os Tempos de Execução, exceto pelo seguinte.

expression
Uma expressão de matriz gerenciada ou coleção. O elemento de coleção deve permitir que o compilador o converta de Object para o tipo identifier.

expression é avaliado como um tipo que implementa IEnumerable, IEnumerable<T> ou um tipo que define um método GetEnumerator que retorna um tipo que implementa IEnumerator ou declara todos os métodos definidos em IEnumerator.

Requisitos

Opção do compilador: /clr

Exemplo

Este exemplo mostra como usar for each para iterar por meio de uma cadeia de caracteres.

// 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

Confira também

Extensões de componentes para plataformas de runtime
Instrução for com base em intervalo (C++)