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
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
Até a próxima!
3 respostas a Loop infinito em C