Pesquisar no blog:

segunda-feira, 10 de junho de 2013

Linguagem C: Laço de repetição for

Com o laço de repetição "for" podemos criar um bloco que será repetido enquanto uma determinada condição não for alcançada.
Podemos dessa forma evitar digitar código extensos. Imaginem, por exemplo, que você precisa digitar 20 vezes a mesma linha. Digitar 20 vezes o printf() com a linha que quer imprimir não é a melhor solução. Aumente isso para 50, pra 100, nada viável digitar tantas linhas para fazer a mesma coisa.
Podemos fazer com que o mesmo bloco repita pela quantidade de vezes que desejamos:
main()
{
    int i;
    for(i = 0; i < 20; i++)
        printf("Linha %d\n", i+1);
    getch();
    return 0;
}
No exemplo acima sera impresso:
"Linha 1"
Como o contador ainda não chegou em seu limite é incrementado 1 ao valor de i e impresso:
"Linha 2"
"Linha 3"
...
"Linha 20"
No momento da impressão é somando 1 ao valor do contador i por que ele começa em 0. O laço é executado de 0 a 19.
O laço for é formado por três partes:
for(inicio da variável ; enquanto <condição> ; incremento)
Podemos ler o for(i = 0; i < 20; i++) da seguinte forma:
para( i começando em 0 ; enquanto i for menor que 20 ; incrementar i de 1 em 1)
Deve-se tomar muito cuidado ao usar laços de repetições, pois pode-se criar laços infinitos. Ou seja, nunca será atingida a condição para parada do laço.
Quando o for possuir mais de uma linha em sua estrutura há a necessidade de inserir chaves para definir o inicio e o fim da estrutura do for. Exemplo:
main()
{
    int i;
    for(i = 0; i < 20; i++)
    {
        if((i+1) % 2 == 0)
            printf("Linha %d\n", i+1);
    }
    getch();
    return 0;
}

Laço for aninhado

For aninhado é o uso de um for dentro de outro. Quando isso ocorre o laço que está mais interno é executado até o fim para depois voltar a mais externo e repetir o laço interno novamente. De modo mais simples, oque estaremos fazer é repetir uma repetição.
Exemplo:
main()
{
    int i, j;
    for(i = 0; i < 5; i++)
        for(j = 0; j < 3; j++)
            printf("i=%d E j=%d\n", i, j);
    getch();
    return 0;
}
Ao entrar no primeiro for o i é 0 (i=0) logo em seguida o programa já entra em outro laço de repetição onde o j é 0 (j=0) e imprime:
i=0 E j=0
E volta para o for mais interno e incremento 1 no j (j=1) e imprime:
i=0 E j=1
Observe que não saímos da primeira repetição do for do contador i. Será feita toda repetição do for do contato j para depois incrementar em e i e novamente fazer o for do contador j de 0 a 2 e assim até finalizar as 5 repetições do primeiro for.
Veja o resultado:

Bastar multiplicar a quantidade de repetições do primeiro laço (5) com a quantidade de repetições do segundo (3) e descobrimos quantas vezes será executada a instrução: 5 * 3 = 15.

Nenhum comentário:

Postar um comentário