Partilhar via


instrução (C++)

Executa uma declaração e a expressão loop- repetidamente até que a expressão cond- se torne falsa.Para obter informações sobre o intervalo- base para a declaração, consulte Instrução for com base em intervalo (C++).

for ( init-expression ; cond-expression ; loop-expression )
   statement 

Comentários

Use a declaração de for para construir loops que devem executar um número de vezes especificado.

A declaração de for consiste em três partes opcionais, conforme mostrado na tabela a seguir.

para elementos de loop

Nome de sintaxe

Quando executado

Sumário

init-expressão

Antes de qualquer outro elemento da instrução for .a init-expressão é executada somente uma vez.Controle é então passado para a cond- expressão.

Freqüentemente usado para inicializar índices do loop.Pode conter as expressões ou as declarações (C++ somente).

cond-expressão

Antes da execução de cada iteração de declaração, incluindo a primeira iteração.instrução é executada somente se expressão de condição for avaliada como true (diferente de zero).

Uma expressão que avalia para um tipo integral ou um tipo de classe que tenha uma conversão a um tipo integral.Normalmente usado para testar os critérios de loop- encerramento.

loop-expressão

No final da cada iteração de declaração.Após a loop- expressão é executada, a cond- expressão é avaliada.

Normalmente usado para incrementar índices do loop.

Por exemplo:

// for_statement1.cpp
#include <stdio.h>
int main() {
int i;
for ( i = 0 ; i < 2 ; i++ ) 
   printf_s( "\n%d\n",i );
}

O loop de for anterior é equivalente ao seguinte loop de while :

// for_statement2.cpp
#include <stdio.h>
int main()
{
   int i = 0;
   while ( i < 2 )
      printf_s( "%d\n", i++ );
}

a init- expressão e a expressão loop- podem conter várias instruções separadas por operador de vírgulas.Por exemplo:

// 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) );
}

Um loop for termina quando um break, return ou goto (para uma instrução rotulada fora do loop for) dentro da instrução é executado.Uma declaração de continue em um loop de for finaliza somente a iteração atual.

Se expressão de condição for omitida, será considerado verdadeiro e o loop for não terminará sem break, return ou goto dentro da instrução.

Uma maneira conveniente para especificar um loop infinito que usa a declaração de for é:

for( ; ; )
{
    // Statements to be executed.
}

Embora os três campos de instrução de for são normalmente usados para inicialização, teste de terminação, e incremento não são restritos, a esses usos.Por exemplo, o código a seguir lê os números 0 a 4.Nesse caso, a declaração é a instrução nula:

// for_statement4.cpp
#include <stdio.h>
int main()
{
    int i;
    for( i = 0; i < 5; printf_s("%d\n", i), i++)
        ;
}

para loop e o padrão C++

O padrão de C++ com que uma variável declarada em um loop de for sairá do escopo após o loop de for termina.Por exemplo:

for (int i = 0 ; i < 5 ; i++) {
   // do something
}
// i is now out of scope under /Za or /Zc:forScope

Por padrão, sob /Ze, uma variável declarada em um loop de for permanece no escopo até que o escopo delimitador do loop de for terminar.

/Zc: forScope permite que o comportamento padrão de variáveis declaradas em para loop sem precisar especificar /Za.

Também é possível usar as diferenças de escopo do loop de for a variáveis de redeclarar em /Ze como segue:

// 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++ ) {}
}

Isso irá simular melhor com o comportamento padrão de uma variável declarada em um loop de for , que requer as variáveis declaradas em um loop de for para sair do escopo após o loop é feito.Quando uma variável é declarada em um loop de for , o compilador internamente elevar-lo a uma variável local no escopo delimitador do loop de for mesmo se já há um variável local com o mesmo nome.

Consulte também

Referência

Instruções de iteração (C++)

Palavras-chave C++

durante a instrução (C++)

Instrução do-while (C++)

Instrução for com base em intervalo (C++)