para instrução (C)
A declaração de for permite que você repita uma instrução ou uma declaração composta um número de vezes especificado.O corpo de uma instrução de for é executado zero ou mais vezes até que uma condição se torne opcional falsa.Você pode usar expressões opcionais dentro da declaração de for para inicializar e alterar valores durante a execução da declaração de for .
Sintaxe
- iteração-instrução:
for ( init-expressionopt ; cond-expressionopt ; loop-expressionopt )statement
Execução das de uma instrução de for como segue:
init-expression, se houver, é avaliado.Isso especifica a inicialização para o loop.Não há restrições no tipo de init-expression.
cond-expression, se houver, é avaliado.Essa expressão deve ter aritmética ou o tipo ponteiro.É avaliada antes de cada iteração.Três resultados são possíveis:
Se cond-expression é verdadeiro (diferente de zero), statement é executado; loop-expression, se houver, é avaliado em seguida.loop-expression é avaliado após cada iteração.Não há restrições no seu tipo.Os efeitos colaterais serão executadas na ordem.O processo começa novamente com a avaliação de cond-expression.
Se cond-expression for omitido, cond-expression é considerado as verdadeiros, e execução exatamente como descrito no parágrafo anterior.Uma declaração de for sem um argumento de cond-expression finaliza somente quando uma declaração de break ou de return dentro do corpo de declaração é executada, ou quando goto (a uma instrução rótulo fora do corpo de instrução de for ) é executado.
Se cond-expression é false (0), a execução da declaração de for finaliza e o controle passa para a instrução a seguir no programa.
Uma declaração de for também encerra quando break, goto, ou a declaração de return dentro do corpo de instruções são executados.Uma declaração de continue em um loop de for causa loop-expression a ser avaliada.Quando uma declaração de break é executada dentro de um loop de for , loop-expression não é analisada ou não é executado.Essa declaração
for( ;; )
é a maneira habitual de gerar um loop infinito que pode apenas ser saído com break, goto, ou instrução de return .
Código
Este exemplo ilustra a instrução de 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