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


}

Exemplo de loop infinito usando for com uma condição de saída usando break;

#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!

3 respostas a Loop infinito em C