Infinite Loop
Parte da seção Fundamentos do Journey de Java da Coddy — lição 49 de 73.
Um laço infinito é um laço que nunca para porque sua condição sempre avalia para true. Esses laços podem ocorrer com qualquer tipo de laço (for, while, do-while), mas eles são mais comumente associados aos laços while e do-while porque suas condições são explicitamente declaradas.
Aqui está um exemplo de um laço while infinito:
while (true) {
System.out.println("This will print forever!");
}Neste caso, a condição é simplesmente true, que sempre avalia para true. Portanto, o loop executará indefinidamente, imprimindo a mensagem repetidamente.
Outra forma de criar um loop infinito é omitindo a condição em um loop for:
for (;;) {
System.out.println("This also prints forever!");
}Aqui, as partes de inicialização, condição e atualização do loop for são todas omitidas. Isso cria um loop infinito.
Loops infinitos também podem ocorrer involuntariamente, como quando a condição do loop é sempre true devido a um erro lógico:
int i = 0;
while (i < 10) {
System.out.println("i is: " + i);
// Missing i++ to increment i
}Neste exemplo, a variável i nunca é incrementada, então a condição i < 10 é sempre true. Isso cria um loop infinito que continuará imprimindo "i is: 0" indefinidamente.
Laços infinitos podem ser úteis em alguns casos, como em programas de servidor que precisam continuar executando até serem parados manualmente. No entanto, eles também podem fazer com que os programas congelem ou travem se não forem tratados adequadamente.
Folha de consulta
Um loop infinito é um loop que nunca para porque sua condição sempre avalia para true.
Loop while infinito intencional:
while (true) {
System.out.println("This will print forever!");
}Loop for infinito intencional (omitindo todas as partes):
for (;;) {
System.out.println("This also prints forever!");
}Loop infinito não intencional (incremento ausente):
int i = 0;
while (i < 10) {
System.out.println("i is: " + i);
// Missing i++ to increment i
}Experimente você mesmo
Esta lição não inclui um desafio de código.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operators Part 1
Arithmetic OperatorsModulo OperatorIncrement/DecrementPost Increment/DecrementArithmetic ShortcutsComparison OperatorsString Comparison5Operators Part 2
Logical Operators Part 1Logical Operators Part 2Recap - Simple LogicLogical Operators Part 3Logical Operators Part 43Variables Part 2
ConstantsNaming ConventionsRecap - Initialize VariablesType Casting Part 1Type Casting Part 26Decision Making
If StatementIf - ElseSwitch StatementTernary OperatorRecap - If ElseNested If - Else