
O for é o primeiro de uma série de três comandos para se trabalhar com loops. Os outros são o while e o do. Os três compõem a segunda família de comandos de controle de fluxo. Podemos pensar nesta família como sendo a dos comandos de repetição controlada.
Como já foi dito, o loop for é usado para repetir um comando, ou bloco de comandos, diversas vezes, de maneira que se possa ter um bom controle sobre o loop. Sua forma geral é:
for (inicialização;condição;incremento) declaração;
O melhor modo de se entender o loop for é ver como ele funciona "por dentro". O loop for é equivalente a se fazer o seguinte:
#include <stdio.h>
main ()
{
int count;
for (count=1;count<=100;count++) printf ("%d ",count);
}
Note que, no exemplo acima, há uma diferença em relação
ao exemplo anterior. O incremento da
variável count é feito usando o operador de incremento
que nós agora já conhecemos. Esta é a forma usual
de se fazer o incremento (ou decremento) em um loop for.
Todas as linguagens de programação possuem algo parecido com o for do C. Mas, o for na linguagem C é muito mais flexível e poderoso. Temos acesso à inicialização, à condição e ao incremento. Isto nos permite fazer o que quisermos. Este é o poder do C.
for (;;) declaração;
Este loop chama-se loop infinito porque será executado para sempre, a não ser que ele seja interrompido. Para interromper um loop como este usamos o comando break. O comando break vai quebrar o loop infinito e o programa continuará sua execução normalmente.
Como exemplo vamos ver um programa que faz a leitura de uma tecla e sua impressão na tela, até que o usuario aperte uma tecla especial, denominada FLAG. O nosso FLAG será a letra 'X'.
#include <stdio.h>
main ()
{
int Count;
char ch;
for (Count=1;;Count++)
{
fflush(NULL);
scanf("%c",&ch);
if (ch == 'X') break;
printf("\nLetra: %c\n",ch);
}
}
Atenção ao comando fflush(NULL). O papel deste comando
é limpar o buffer do teclado para que outros caracteres armazenados
no buffer do computador sejam liberados. Desta forma a leitura de caracter
que acontece logo após a sua execução não ficará
prejudicada.
for (inicialização;condição;incremento);
Uma das aplicações desta estrutura é gerar tempos de espera. O programa
#include <stdio.h>
main ()
{
long int i;
printf("\a"); /* Imprime o caracter de alerta (um beep) */
for (i=0; i<10000000; i++); /* Espera 10.000.000 de iteracoes */
printf("\a"); /* Imprime outro caracter de alerta */
}
demonstra o espaço de tempo gerado.
Veja como você está.
Perguntas para a lista do
Curso de C