Compartilhar via


for Instrução (C)

A instrução for permite repetir uma instrução ou uma instrução composta por um número especificado de vezes. O corpo de uma instrução for é executado zero ou mais vezes até que uma condição opcional se torne falsa. Você pode usar expressões opcionais na instrução for para inicializar e alterar valores durante a execução da instrução for.

Sintaxe

iteration-statement:
for ( init-expressionopt ; cond-expressionopt ; loop-expressionopt ) statement

A execução de uma instrução for ocorre da seguinte maneira:

  1. O parâmetro init-expression, se houver, é avaliado. Especifica a inicialização do loop. Não há nenhuma restrição ao tipo init-expression.

  2. O parâmetro cond-expression, se houver, é avaliado. Essa expressão deve ter tipo aritmético ou ponteiro. Ele é avaliado antes de cada iteração. Três resultados são possíveis:

    • Se cond-expression for true (diferente de zero), statement será executado. Em seguida, loop-expression, se houver, será avaliado. O parâmetro loop-expression é avaliado após cada iteração. Não há nenhuma restrição sobre o tipo. Os efeitos colaterais serão executados na ordem. Em seguida, o processo é iniciado novamente com a avaliação de cond-expression.

    • Se cond-expression está omitido, cond-expression é considerado true e a execução continua exatamente conforme descrito no parágrafo anterior. Uma instrução for sem um argumento cond-expression só termina quando uma instrução break ou return dentro do corpo da instrução é executada, ou quando um goto (para uma instrução rotulada fora do corpo da instrução for) é executado.

    • Se cond-expression é false (0), a execução da instrução for termina e o controle passa para a próxima instrução no programa.

Uma instrução for também termina quando uma instrução break, goto ou return dentro do corpo da instrução é executada. Uma instrução continue em um loop for faz com que loop-expression seja avaliado. Quando uma instrução break é executada dentro de um loop for, loop-expression não é avaliado nem executado. Esta instrução

for( ; ; )

é a maneira comum de gerar um loop infinito, que só pode ser encerrado com uma instrução break, gotoou return.

Exemplo

Este exemplo ilustra a instrução for:

// c_for.c
int main()
{
   char* line = "H e  \tl\tlo World\0";
   int space = 0;
   int tab = 0;
   int i;
   int max = strlen(line);
   for (i = 0; i < max; i++ )
   {
      if ( line[i] == ' ' )
      {
          space++;
      }
      if ( line[i] == '\t' )
      {
          tab++;
      }
   }

   printf("Number of spaces: %i\n", space);
   printf("Number of tabs: %i\n", tab);
   return 0;
}

Saída

Number of spaces: 4
Number of tabs: 2

Confira também

Instruções