Laços de Repetição: For, While e Do-While no Desenvolvimento Java

Por Gaspar Barancelli Junior em 16 de janeiro de 2025

Introdução

Laços de repetição são componentes fundamentais em programação e permitem que blocos de código sejam executados repetidamente com base em condições específicas. Em Java, os principais laços são: for, while e do-while. Este post explora cada um deles com exemplos e melhores práticas para ajudar você a utilizá-los de forma eficiente.

Laços de Repetição

Os laços de repetição tornam possível executar uma tarefa várias vezes sem duplicar código. Em Java, os principais tipos de laços são:

  • for: Ideal para iterações com um número conhecido de repetições.

  • while: Usado quando não se sabe exatamente quantas vezes a repetição ocorrerá.

  • do-while: Semelhante ao while, mas garante que o bloco seja executado ao menos uma vez.

Laço For

O laço for é usado quando sabemos quantas vezes o bloco deve ser repetido. Ele possui uma estrutura compacta que inclui inicialização, condição e incremento.

Sintaxe Básica

for (inicialização; condição; incremento) {
    // Código a ser executado
}

Exemplo

public class LacoFor {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            System.out.println("Iteração: " + i);
        }
    }
}

For-Each

O Java também suporta o laço for-each, útil para percorrer coleções ou arrays.

Exemplo básico:

public class LacoForEach {
    public static void main(String[] args) {
        String[] nomes = {"Gaspar", "Laura", "Cecília"};

        for (String nome : nomes) {
            System.out.println("Nome: " + nome);
        }
    }
}

Exemplo com Streams e forEach:

import java.util.List;

public class LacoStreamForEach {
    public static void main(String[] args) {
        List<String> nomes = List.of("Gaspar", "Laura", "Cecília");

        nomes.forEach(nome -> System.out.println("Nome: " + nome));

        // ou

        nomes.stream().forEach(nome -> System.out.println("Nome: " + nome));
    }
}

Laço While

O while executa um bloco de código enquanto a condição for verdadeira. Ele é mais flexível que o for, mas pode ser mais suscetível a erros, como laços infinitos.

Sintaxe Básica

while (condição) {
    // Código a ser executado
}

Exemplo

public class LacoWhile {
    public static void main(String[] args) {
        int contador = 0;

        while (contador < 5) {
            System.out.println("Contador: " + contador);
            contador++;
        }
    }
}

Laço Do-While

O do-while é semelhante ao while, mas garante que o bloco de código seja executado pelo menos uma vez, mesmo que a condição seja falsa.

Sintaxe Básica

do {
    // Código a ser executado
} while (condição);

Exemplo

public class LacoDoWhile {
    public static void main(String[] args) {
        int contador = 0;

        do {
            System.out.println("Contador: " + contador);
            contador++;
        } while (contador < 5);
    }
}

Exemplo com break e return

O break termina o laço imediatamente, enquanto o return finaliza o método em que o laço está inserido.

public class BreakReturnExample {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            if (i == 5) {
                System.out.println("Parando no 5 com break");
                break;
            }
            System.out.println("Valor: " + i);
        }

        for (int i = 0; i < 10; i++) {
            if (i == 5) {
                System.out.println("Saindo do método no 5 com return");
                return;
            }
            System.out.println("Valor: " + i);
        }
    }
}

Exemplo com Laço Rotulado

Os laços rotulados permitem interromper ou continuar um laço externo específico usando um rótulo.

public class LacoRotulado {
    public static void main(String[] args) {
        nomeDoFor:
        for (int i = 0; i < 3; i++) {
            for (int j = 2; j < 5; j++) {
                System.out.println("i: " + i + ", j: " + j);
                if (i == j) {
                    System.out.println("Interrompendo o laço externo quando i == j");
                    break nomeDoFor;
                }
            }
        }
    }
}

Conclusão

Os laços de repetição são ferramentas poderosas no desenvolvimento Java. Saber escolher entre for, while e do-while, além de aplicar conceitos como Streams, break, return e rótulos, é essencial para criar soluções eficientes e legíveis. Aplicar boas práticas na utilização dessas estruturas ajuda a evitar erros comuns e garante que seu código seja mais fácil de entender e manter.

Em futuros posts da série "Aprendendo Java do Zero: Guia Completo para Iniciantes", abordaremos o tema "Conversão de Tipos e Casting em Java: Dicas para Evitar Erros Comuns"!

// Compartilhe esse Post

💫
🔥 NOVO APP

Domine o Inglês em 30 dias!

Inteligência Artificial + Repetição Espaçada • Método cientificamente comprovado

✅ Grátis para começar 🚀 Resultados rápidos
×