Estruturas de Controle em Linguagem C
6. Loops
Os loops permitem que você execute um bloco de código repetidamente enquanto uma condição for verdadeira. A seguir exeplos do lop for, while e do-while:
Listagem 07 - Neste exemplo, o loop for imprime os valores de i de 0 a 4.
- #include <stdio.h>
- int main() {
- for (int i = 0; i < 5; i++) {
- printf("i = %d\n", i);
- }
- return 0;
- }
Listagem 08 - Neste exemplo, o loop while continua a executar enquanto i for menor que 5.
- #include <stdio.h>
- int main() {
- int i = 0;
- while (i < 5) {
- printf("i = %d\n", i);
- i++;
- }
- return 0;
- }
Listagem 09 - Diferente dos anteriores, o loop do-while realiza o teste condicional apenas no final da iteração.
- #include <stdio.h>
- int main() {
- int count = 1;
- printf("Contando de 1 a 5 usando um loop do-while:\n");
- do {
- printf("%d ", count);
- count++;
- } while (count <= 5);
- printf("\n");
- return 0;
- }
Explicação
A estrutura de repetição do-while garante que o bloco de instruções seja executado no mínimo uma vez, pois a validação ocorre após a execução.
O switch avalia uma única variável e executa um bloco de código com base no valor correspondente (case).
| Valor | Ação |
|---|---|
| int count = 1; | inicializa o contador. |
| do { ... } while (count <= 5); | executa o bloco e, em seguida, verifica a condição. |
| printf("%d ", count); | imprime o valor atual. |
| count++; | incrementa o contador. |
Principais Diferenças
O switch avalia uma única variável e executa um bloco de código com base no valor correspondente (case).
Compreender quando usar cada tipo de loop é essencial para escrever código eficiente e legível:
| Loop | Uso |
|---|---|
| for | Melhor para cenários de iteração fixa e conhecida, como travessia de array ou repetições baseadas em contador. |
| while | Ideal para iterações orientadas por condição, onde o número de repetições é incerto. |
| do while | Perfeito quando você precisa garantir pelo menos uma execução antes da verificação da condição. |
Ao dominar essas estruturas de loop, você desenvolverá a capacidade de escrever programas C mais dinâmicos, eficientes e elegantes.