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.