Instrução for
(C++)
Executa uma instrução repetidamente até que a condição se torne falsa. Para obter informações sobre a instrução for
baseada em intervalo, consulte Instrução for
baseada em intervalo (C++). Para obter informações sobre a instrução C++/CLI for each
, consulte for each
, in
.
Sintaxe
for (
init-expression
;
cond-expression
;
loop-expression
)
statement
Comentários
Use a instrução for
para construir loops que devem ser executados um número especificado de vezes.
A instrução for
consiste em três partes opcionais, conforme mostrado na tabela a seguir.
eElementos loop for
Nome da sintaxe | Quando executado | Descrição |
---|---|---|
init-expression |
init-expression é executado apenas uma vez, antes de qualquer outro elemento da instrução for . O controle passa para cond-expression . |
Muitas vezes usado para inicializar índices de loop. Ele pode conter expressões ou declarações. |
cond-expression |
Antes da execução de cada iteração de statement , incluindo a primeira iteração. statement será executado apenas se cond-expression for avaliado como verdadeiro (diferente de zero). |
Uma expressão que é avaliada para um tipo integral ou um tipo de classe que tem uma conversão ambígua para um tipo integral. Geralmente usado para testar critérios de encerramento de loop. |
loop-expression |
No fim de cada iteração de statement . Depois que loop-expression é executado, cond-expression é avaliado. |
Geralmente usado para incrementar índices de loop. |
Os exemplos a seguir mostram diferentes maneiras de usar a instrução for
.
#include <iostream>
using namespace std;
int main() {
// The counter variable can be declared in the init-expression.
for (int i = 0; i < 2; i++ ){
cout << i;
}
// Output: 01
// The counter variable can be declared outside the for loop.
int i;
for (i = 0; i < 2; i++){
cout << i;
}
// Output: 01
// These for loops are the equivalent of a while loop.
i = 0;
while (i < 2){
cout << i++;
}
// Output: 01
}
init-expression
e loop-expression
podem conter várias instruções separadas por vírgulas. Por exemplo:
#include <iostream>
using namespace std;
int main(){
int i, j;
for ( i = 5, j = 10 ; i + j < 20; i++, j++ ) {
cout << "i + j = " << (i + j) << '\n';
}
}
/* Output:
i + j = 15
i + j = 17
i + j = 19
*/
loop-expression
pode ser incrementado ou diminuído, ou modificado de outras maneiras.
#include <iostream>
using namespace std;
int main(){
for (int i = 10; i > 0; i--) {
cout << i << ' ';
}
// Output: 10 9 8 7 6 5 4 3 2 1
for (int i = 10; i < 20; i = i+2) {
cout << i << ' ';
}
}
// Output: 10 12 14 16 18
Um loop for
termina quando um break
, return ou goto
(para uma instrução rotulada fora do loop for
) dentro de statement
é executado. Uma instrução continue
em um loop for
encerra apenas a iteração atual.
Se cond-expression
for omitido, será considerado true
, e o loop for
não terminará sem um break
, return
ou goto
dentro de statement
.
Embora os três campos da instrução for
sejam normalmente usados para inicialização, teste para encerramento e incremento, eles não estão restritos a esses usos. Por exemplo, o código a seguir imprime os número de 0 a 4. Nesse caso, statement
é a instrução null:
#include <iostream>
using namespace std;
int main()
{
int i;
for( i = 0; i < 5; cout << i << '\n', i++){
;
}
}
for
loops e o C++ Standard
O padrão C++ diz que uma variável declarada em um loop for
deve sair do escopo após o término do loop for
. 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, em /Ze
, uma variável declarada em um loop for
permanece no escopo até que o escopo do loop for
termine.
/Zc:forScope
habilita o comportamento padrão de variáveis declaradas em loops for sem precisar especificar /Za
.
Também é possível usar as diferenças de escopo do loop for
para declarar variáveis em /Ze
novamente da seguinte maneira:
// 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++ ) {}
}
Esse comportamento imita de forma mais próxima o comportamento padrão de uma variável declarada em um loop for
, que exige que as variáveis declaradas em um loop for
saiam do escopo após o loop ser concluído. Quando uma variável é declarada em um loop for
, o compilador a promove internamente para uma variável local no escopo do loop for
. Ela é promovida mesmo que já exista uma variável local com o mesmo nome.
Confira também
Instruções de iteração
Palavras-chave
while
instrução (C++)
do-while
instrução (C++)
Instrução for
baseada em intervalo (C++)
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de