Java: Loops

Loops permitem que programas repitam certas operações. Esta lição cobre as estruturas de loop em Java.

1. Loop for

O loop for é a estrutura de loop mais comumente usada, ideal quando o número de iterações é conhecido.

(1) Sintaxe

TEXT 📖 Somente leitura
for (inicialização; condição; atualização) {
    // Corpo do loop
}

▶ Exemplo: Imprimir 1 a 10

JAVA
public class ForDemo {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            System.out.println(i);
        }
    }
}
▶ Experimente

(2) Fluxo de Execução

TEXT 📖 Somente leitura
1. Executar inicialização (int i = 1)
2. Verificar condição (i <= 10)
3. Se condição for verdadeira, executar corpo do loop
4. Executar atualização (i++)
5. Voltar ao passo 2

▶ Exemplo: Soma de 1 a 100

JAVA
public class SumDemo {
    public static void main(String[] args) {
        int sum = 0;
        
        for (int i = 1; i <= 100; i++) {
            sum += i;
        }
        
        System.out.println("Soma de 1 a 100: " + sum);  // 5050
    }
}
▶ Experimente

2. Loop while

O loop while é ideal quando o número de iterações é desconhecido.

(1) Sintaxe

JAVA
while (condição) {
    // Corpo do loop
}

▶ Exemplo: Jogo de Adivinhação de Números

TEXT 📖 Somente leitura
import java.util.Scanner;
import java.util.Random;

public class GuessGame {
    public static void main(String[] args) {
        Random random = new Random();
        int target = random.nextInt(100) + 1;
        Scanner scanner = new Scanner(System.in);
        int guess = 0;
        
        System.out.println("Jogo de Adivinhação de Números (1-100)");
        
        while (guess != target) {
            System.out.print("Digite seu palpite: ");
            guess = scanner.nextInt();
            
            if (guess > target) {
                System.out.println("Muito alto!");
            } else if (guess < target) {
                System.out.println("Muito baixo!");
            } else {
                System.out.println("Parabéns! Você acertou!");
            }
        }
        
        scanner.close();
    }
}

3. Loop do-while

O loop do-while executa o corpo do loop pelo menos uma vez.

(1) Sintaxe

JAVA
do {
    // Corpo do loop
} while (condição);

▶ Exemplo: Loop de Menu

TEXT 📖 Somente leitura
import java.util.Scanner;

public class MenuDemo {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int choice;
        
        do {
            System.out.println("\n=== Menu Principal ===");
            System.out.println("1. Iniciar Jogo");
            System.out.println("2. Configurações");
            System.out.println("3. Sair");
            System.out.print("Digite sua escolha: ");
            choice = scanner.nextInt();
            
            switch (choice) {
                case 1:
                    System.out.println("Iniciando jogo...");
                    break;
                case 2:
                    System.out.println("Abrindo configurações...");
                    break;
                case 3:
                    System.out.println("Adeus!");
                    break;
                default:
                    System.out.println("Escolha inválida");
            }
        } while (choice != 3);
        
        scanner.close();
    }
}
💡 while vs do-while: while verifica a condição primeiro e pode nunca executar. do-while executa primeiro e verifica depois, garantindo pelo menos uma execução.


4. Loop for-each

O loop for-each é usado para iterar sobre arrays ou coleções.

(1) Sintaxe

JAVA
for (tipo variável : array ou coleção) {
    // Usar variável
}

▶ Exemplo: Iterando um Array

JAVA
public class ForEachDemo {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};
        
        // Loop for regular
        for (int i = 0; i < numbers.length; i++) {
            System.out.println(numbers[i]);
        }
        
        // Loop for-each
        for (int num : numbers) {
            System.out.println(num);
        }
    }
}
▶ Experimente
💡 Quando usar: Use for-each quando precisar apenas dos elementos. Use for regular quando precisar do índice.


5. break e continue

(1) break: Sair do Loop

JAVA
public class BreakDemo {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            if (i == 5) {
                break;  // Sair do loop quando i for igual a 5
            }
            System.out.println(i);
        }
        // Saída: 1 2 3 4
    }
}

(2) continue: Pular Iteração Atual

JAVA
public class ContinueDemo {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            if (i % 2 == 0) {
                continue;  // Pular números pares
            }
            System.out.println(i);
        }
        // Saída: 1 3 5 7 9
    }
}

6. Loops Aninhados

Loops podem ser aninhados uns dentro dos outros.

▶ Exemplo: Tabuada de Multiplicação

JAVA
public class MultiplicationTable {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j + " × " + i + " = " + (i * j) + "\t");
            }
            System.out.println();
        }
    }
}
▶ Experimente

Saída:

TEXT 📖 Somente leitura
1 × 1 = 1
1 × 2 = 2  2 × 2 = 4
1 × 3 = 3  2 × 3 = 6  3 × 3 = 9
...

▶ Exemplo: Imprimir um Triângulo

JAVA
public class TriangleDemo {
    public static void main(String[] args) {
        int rows = 5;
        
        for (int i = 1; i <= rows; i++) {
            // Imprimir espaços
            for (int j = 1; j <= rows - i; j++) {
                System.out.print(" ");
            }
            // Imprimir estrelas
            for (int k = 1; k <= 2 * i - 1; k++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
▶ Experimente

Saída:

TEXT 📖 Somente leitura
    *
   ***
  *****
 *******
*********

7. Loops Infinitos

Se a condição do loop for sempre verdadeira, um loop infinito é criado.

JAVA
// Exemplo de loop infinito (não faça isso)
while (true) {
    System.out.println("Loop infinito");
}

// Loop infinito correto (com condição de saída)
while (true) {
    // Ler entrada do usuário
    String input = scanner.nextLine();
    if (input.equals("sair")) {
        break;  // Sair quando o usuário digitar "sair"
    }
}

❓ Perguntas Frequentes

P: Como escolher entre for e while? R: Use for quando o número de iterações for conhecido. Use while quando for desconhecido. for é mais conciso, while é mais flexível.

P: Qual é a diferença entre break e return? R: break sai do loop atual. return sai de todo o método.

P: Como sair de múltiplos loops aninhados? R: Use break com rótulo. outer: for(...) { for(...) { break outer; } }

📖 Resumo

📝 Exercícios

  1. Soma: Calcule a soma de todos os números ímpares de 1 a 100
  2. Fatorial: Calcule o fatorial de 10 (10! = 10 × 9 × ... × 1)
  3. Tabuada: Use loops aninhados para imprimir a tabuada de multiplicação completa

8. Próxima Lição

Na próxima lição, aprenderemos sobre Arrays — como armazenar e operar em um grupo de dados.

Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%