CURSO DE C

O Comando for


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:

 

inicialização;
if (condição)
{

declaração;
incremento;
"Volte para o comando if"
}

 

Podemos ver, então, que o for executa a inicialização incondicionalmente e testa a condição. Se a condição for falsa ele não faz mais nada. Se a condição for verdadeira ele executa a declaração, faz o incremento e volta a testar a condição. Ele fica repetindo estas operações até que a condição seja falsa. Um ponto importante é que podemos omitir qualquer um dos elementos do for, isto é, se não quisermos uma inicialização poderemos omiti-la. Abaixo vemos um programa que coloca os primeiros 100 números inteiros na tela:

 

#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.

 

O loop infinito

O loop infinito tem a forma

 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. 

O loop sem conteúdo

Loop sem conteúdo é aquele no qual se omite a declaração. Sua forma geral é portanto (atenção ao ponto e vírgula!):

 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.

 


AUTO AVALIAÇÃO

Veja como você está.

  • Faça um programa que inverta uma string (uma sequência de caracteres). Use o comando for para varrer a string até o seu final. Lembre-se que a string sempre termina com o caracter '\0'.

  • Página Anterior Índice da Aula Próxima Página

    Dúvidas? De uma olhadinha em nosso FAQ

    Perguntas para a lista do Curso de C