Loop infinito em C

Por: Eduardo Casavella

 
Um loop ou laço infinito é aquele que apresenta sempre uma condição de teste verdadeira,ou seja, nunca termina.

Algumas vezes, o iniciante em programação cai em um loop infinito de forma acidental.

Isto ocorre quando escreve acidentalmente uma condição que jamais será satisfeita, ou então esquece de alterar o valor da variável de controle do laço fazendo com que a condição permaneça verdadeira para sempre.

Existem porém, programadores que usam loop infinitos em situações em que não se sabe quantas vezes a repetição será executada.

A idéia é fazer com que a condição de teste que controla a repetição seja sempre verdadeira.

Mas se a condição de teste é sempre verdadeira, como sair do laço?

Para sair do laço infinito usa-se break para forçar a saída quando uma determinada condição ocorrer.
 

Exemplo de loop infinito com for

quando nada é colocado dentro da estrutura de repetição for, a condição é considerada verdadeira.

for( ; ; )
{


}

 
[sourcecode language=”cpp”]

#include <stdio.h>
#include <conio.h>

int main (void)
{
int n;

/*
laço for vazio gera um loop infinito

pois na prática, como não existe a condição
ela é considerada verdadeira
*/

for (;;)
{
printf("Digite um numero inteiro: ");
scanf("%d", &n);

if (n == 7)
{
printf("Saindo do loop…\n");
break; //força a saída do loop
}

printf("Numero: %d\n",n);
}

printf("Fim de programa");
getch();
return(0);
}
[/sourcecode]
 

Tela de Execução
 

Execução exemplo loop infinito com for

Tela de Execução do Exemplo de Loop infinito com for


 

Exemplo de loop infinito com while

While(1)

{
   instruções;

}

 
Exemplo de Código
 
[sourcecode language=”cpp”]

#include <stdio.h>
#include <conio.h>

int main (void)
{
int n;

/* while (1) – condição verdadeira
gerando um loop infinito
*/

while (1)
{
printf("Digite um numero inteiro: ");
scanf("%d", &n);

if (n == 7)
{
printf("Saindo do loop…\n");
break; //força a saída imediata do loop
}

printf("Numero: %d\n",n);
}

printf("Fim de programa");
getch();
return(0);
}

[/sourcecode]
 

Tela de Execução
 

Execução exemplo loop infinito com while

Tela de Execução do exemplo Loop infinito com while


 

Até a próxima!

Uma resposta a Loop infinito em C