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( ; ; )
{


}

 


#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);
}

 

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
 


#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);
}

 

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