O comando for de C nos permite declarar um loop infinito sem utilizar seus campos de
iniciação, comparação e incremento. Isso é mostra na sintaxe abaixo:
Sintaxe
for(; ; )
{
//código
}
Exemplo 6
#include <stdio.h>
void main ()
{
int cont = 0;
printf("inicio_loop\n");
for(; ;)
{
//código
//...
//sair do loop
if (cont >= 5)
break;
printf("loop %02d\n", cont + 1);
cont++;
}
printf("fim_loop\n");
}
Saída
inicio_loop
loop 01
loop 02
loop 03
loop 04
loop 05
fim_loop
Fazendo uso do comando goto, o for acima pode ser rescrito escrita como no exemplo
abaixo:
Exemplo 7
#include <stdio.h>
void main ()
{
int cont = 0;
printf("inicio_loop\n");
inicio_loop:
//código
//...
//sair do loop
if (cont >= 5)
goto fim_loop;
printf("loop %02d\n", cont + 1);
cont++;
goto inicio_loop;
fim_loop:
printf("fim_loop\n");
}
Saída
inicio_loop
loop 01
loop 02
loop 03
loop 04
loop 05
fim_loop
Os loops infinitos podem também ser feitos como os comandos while e do-while.
Esses comandos não permitem que o campo em que a uma expressão de validação fique vazia, assim
tem que utilizar um valor numérico 0 ou 1, por exemplo:
Exemplo 7
#include <stdio.h>
void main ()
{
int cont = 0;
printf("inicio_loop\n");
do
{
//código
//...
//sair do loop
if (cont >= 5)
break;
printf("loop %02d\n", cont + 1);
cont++;
}while(1);
printf("fim_loop\n");
}
Saída
inicio_loop
loop 01
loop 02
loop 03
loop 04
loop 05
fim_loop
Exemplo 8
#include <stdio.h>
void main ()
{
int cont = 0;
printf("inicio_loop\n");
while(1)
{
//código
//...
//sair do loop
if (cont >= 5)
break;
printf("loop %02d\n", cont + 1);
cont++;
}
printf("fim_loop\n");
}
Saída
inicio_loop
loop 01
loop 02
loop 03
loop 04
loop 05
fim_loop