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++)