freeCodeCamp/guide/portuguese/java/loops/infinite-loops/index.md

1.8 KiB

title localeTitle
Infinite Loops Loops Infinitos

Loops Infinitos

Um loop infinito é uma instrução loop ( for , while , do-while ) que não termina sozinha.

A condição de teste de uma instrução em loop decide se o corpo do loop será executado ou não. Assim, uma condição de teste que é sempre verdadeira continuará a executar o corpo do loop, para sempre. Esse é o caso em um loop infinito.

Exemplos:

// Infinite For Loop 
 for ( ; ; ) 
 { 
    // some code here 
 } 
 
 // Infinite While Loop 
 while (true) 
 { 
    // some code here 
 } 
 
 // Infinite Do While Loop 
 do 
 { 
    // some code here 
 } while (true); 

Normalmente, se o seu loop está rodando infinitamente, é um erro que não deve ocorrer, já que um loop infinito não para e impede que o resto do programa seja executado.

for(int i=0;i<100;i++){ 
 
    if(i==49){ 
    i=0; 
    } 
 
 } 

O loop acima é executado infinitamente, porque toda vez que me aproximo de 49, ele é definido como 0. Isso significa que nunca alcanço 100 para finalizar o loop, portanto, o loop é um loop infinito.

Mas um programa preso em tal loop continuará usando os recursos do computador indefinidamente. Isso é indesejável e é um tipo de 'erro em tempo de execução'.

Para evitar o erro, os programadores usam uma instrução break para sair do loop. A quebra é executada apenas sob uma condição específica. O uso de uma instrução de seleção como if-else garante o mesmo.

while (true) 
 { 
    // do something 
 
    if(conditionToEndLoop == true) 
        break; 
 
    // do more 
 } 

A principal vantagem de usar um loop infinito sobre um loop regular é a legibilidade.

Às vezes, o corpo de um loop é mais fácil de entender se o loop terminar no meio e não no final / início. Em tal situação, um loop infinito será uma escolha melhor.