04 — Estruturas de Repetição
Aprenda a repetir código usando loops de forma eficiente em Java
Laços permitem que você repita o código sem escrevê-lo repetidamente. São essenciais para processar collections, gerar mundos e atualizar objetos do jogo.
Laço “while”
Repete o código enquanto uma condição for verdadeira:
int countdown = 5;
while (countdown > 0) {
System.out.println(countdown);
countdown--;
}
System.out.println("Lançar!");Estrutura
while (condição) {
// código para repetir
}Sempre certifique-se de que sua condição de loop se tornará falsa, ou seu programa será executado para sempre!
int x = 0;
while (x < 10) {
System.out.println("Preso!");
// Esqueceu de aumentar x!
}Laço "Do-While"
Como um laço while, mas sempre executa pelo menos uma vez:
int health = 0;
do {
System.out.println("Tentando respawn...");
health = 100;
} while (saúde <= 0);Laço “for”
Melhor quando você sabe quantas vezes repetir:
for (int i = 1; i <= 5; i++) {
System.out.println("Nível " + i);
}Estrutura
for (inicialização; condição; atualização) {
// código para repetir
}for (int i = 0; i < 10; i++) {
// ^ ^ ^
// Iniciar Parar Passo
}- Inicialização: int i = 0 - Executa uma vez no início
- Condição: i < 10 - Verificada antes de cada loop
- Atualização: i++ - Executa após cada loop
Instrução "Break"
Você pode sair de um laço cedo com break:
for (int i = 1; i <= 10; i++) {
if (i == 6) {
break; // Sair do loop quando i for 6
}
System.out.println(i);
}Instrução "Continue"
Pula para a próxima iteração com o continue:
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continua; // Pula números pares
}
System.out.println(i); // Imprime apenas números ímpares
}Laços Aninhados
Você pode colocar os laços dentro de outros laços:
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 2; j++) {
System.out.println("i: " + i + ", j: " + j);
}
}Tenha cuidado com laços aninhados! Eles podem deixar seu mod significativamente mais lento.
// Isso executa 1.000.000 vezes!
for (int i = 0; i < 1000; i++) {
for (int j = 0; j < 1000; j++) {
// Código aqui
}
}Tente evitar laços aninhados profundamente ao processar grandes quantidades de dados.