Laços de repetição em Linguagem C

Laços de repetição em Linguagem C

Neste post vamos ver os laços de repetição em Linguagem C. Vamos ver como fazer um laço usando estruturas condicionais, usar o laço for, laço do-while e while.

No vídeo abaixo são apresentados todos os códigos de laços de repetição em Linguagem C que vamos estudar neste post:

Laço de repetição usando if

O primeiro laço de repetição que vamos ver é usando o comando de tomada de decisão if. No código abaixo podemos ver como implementar laço de repetição:

#include <stdio.h>

int x = 0;

int main() {
inicio:
        if (x < 10) {
                printf ("%d\n", x);
                x++;
                goto inicio;
        }

        return 0;
}

No código acima usamos um recurso muito usando em linguagem assembly que é um label chamado inicio. Depois implementamos uma estrutura condicional para verificar se a variável x é menor do que 10, e imprimimos o valor de x, incrementamos x e usamos o comando goto para retornar para label inicio.

Muitos materiais não recomendam o uso do comando goto em linguagem C, pois em códigos maiores o comando pode fazer um salto para um ponto desconhecido do código e causar erros ou problemas que sejam difíceis de diagnosticar.

Laço de repetição for

O laço for é um laço de repetição que atribuí três parâmetros para uma variável em sua estrutura, ou seja, um valor inicial, uma condição de parada, e um comando de incremento ou decremento a depender da lógica do seu código.

Abaixo temos o código que é apresentado no vídeo:

#include <stdio.h>

int x = 0;

int main() {
        for (x = 0; x < 10; x++) {
                printf ("%d\n", x);
        }

        return 0;
}

Também é possível criar laços infinitos usando o comando for. No código abaixo é mostrado como criar um laço infinito com o comando for:

#include <stdio.h>

int x = 0;

int main() {
        for (;;) {
                printf ("%d\n", x);
        }

        return 0;
}

Laço de repetição do-while

O laço de repetição do-while é um laço de repetição que executa pelo menos uma vez todos os comandos que estão dentro de seu escopo, e depois verifica a condição de parada.

Abaixo temos o código que é apresentado no video:

#include <stdio.h>

int x = 0;

int main() {
        do {
                printf ("%d\n", x);
                x++;
                } while (x < 10);

        return 0;
}

Laço de repetição while

O laço de repetição while tem o mesmo princípio de funcionamento do laço do-while, a única diferença está no fato de que quando o código chegar na instrução while, os comando que estão dentro de seu escopo só serão executados se a condição estabelecida dentro do laço é atendidas.

Abaixo temos o código que é apresentado no video:

#include <stdio.h>

int x = 10;

int main() {
        while (x > 0) {
                printf ("%d", x);
                x--;
        }

        return 0;
}

Conclusão

Neste post vimos laços de repetição em Linguagem C. Vimos como fazer um laço de repetição usando o comando goto, que faz um salto no código, e que esse comando não é recomendado para uso. Também vimos os laços for, do-while e while.

É importante notar que é possível fazer a concatenação de laços de repetição, e com isso obter estruturas mais complexas, isso pode ser muito útil, por exemplo, caso se deseja fazer uma leitura de uma matriz, ou imprimir um pictograma com caracteres especiais.

Outro detalhe importante que deve ser observado são os laços infinitos, pois eles podem causar problemas na hora de executar o código, por exemplo, imprimir uma quantidade infinita de números sem que desejamos fazer isso. Entretanto, em algumas aplicações é necessário o uso de laços infinitos, como por exemplo na programação de microcontroladores, pois os mesmos não possuem um sistema operacional e necessitam de um laço infinito para que funcionem adequadamente.

Abaixo deixo um link para um post sobre como controlar a matriz de LEDs Wantronics, e nele é possível ver o uso da concatenação de dois laços para fazer a varredura da matriz e ligar apenas os LEDs que desejamos que permaneçam ligados. Isso é tudo e até o próximo post!

Referências bibliográficas:

http://www2.dcc.ufmg.br/disciplinas/pc/source/introducao_c_renatocm_deeufmg.pdf