Skip to main content

Command Palette

Search for a command to run...

Loops While e Do-While em Java

Published
•3 min read•View as Markdown
Loops While e Do-While em Java
A
My name is Lucas. I'm a journalist and software developer who can take photos, print zines and make videos, that's no joke. 📸📰🎬💻🕺😅

Existem diversas abordagens para repetir um trecho de código enquanto uma determinada condição for atendida, ou seja, for avaliada como verdadeira(true).

Uma das formas de fazer isso é usando loops while e do-while.

Basicamente, essas duas formas de se executar um laço de repetição diferem na ordem de execução do trecho de código e no momento em que avaliam a condição.

O loop while

O loop while é formado por um bloco de código e uma condição. Se a condição for avaliada como verdadeira (true), então o bloco de código será executado. Ao final da execução do bloco de código, a condição é novamente avaliada e, se for verdadeira, o bloco de código é novamente executado. Esses passos se repetem até que a condição seja avaliada como falsa (false).

O loop while, portanto, verifica a condição antes de execução do bloco de código. Por esse motivo, também pode ser chamado de um loop do tipo pré-teste.

A sintaxe básica de um loop while é a seguinte:

while (condição) {
    // corpo: Faça algo enquanto a condição for verdadeira
}

Esse corpo pode conter quaisquer instruções Java corretas, incluindo instruções condicionais e até mesmo outros loops, sendo estes últimos chamados de loops aninhados.

Se uma condição for invariavelmente verdadeira, teremos um loop infinito:

while (true) {
    // body: do something indefinitely
}

Exemplo de um loop que imprime números inteiros menores que 5:

int i = 0;
while (i < 5) {
    System.out.println(i);
    i++;
}

Esse loop funciona da seguinte forma:

  1. O valor 0 é atribuído à variável i.
  2. Antes da primeira execução do corpo do loop, o programa verifica se a condição i < 5 é verdadeira.
  3. Caso i seja menor que 5, então a condição é verdadeira e o corpo do loop começa a ser executado.
  4. O corpo tem duas instruções: 4.1 exibe o valor atual de i 4.2 incrementa o valor de i em 1
  5. A expressão i < 5 é avaliada novamente.
  6. Caso a condição seja verdadeira, volta ao passo 3.
  7. Caso a condição seja falsa, o loop é encerrado e o programa prossegue para a próxima instrução após o loop.

O loop do-while

Nesse tipo de loop, o corpo do loop é executado primeiro para, depois, avaliar a condiçao, ao final do corpo do loop. Caso a condição seja verdadeira, essa mesma sequência de passos é executada mais uma vez.

Vamos observar a sintaxe, assim fica mais fácil de entender. Este loop contém três partes: a palavra-chave do, um corpo e a palavra chave while(condition) com uma condição associada:

do {
    // body: do something
} while (condition);

Um exemplo de uso muito comum é um programa que lê dados da entrada até que um usuário insira um determinado número ou string de encerramento. O programa a seguir lê números inteiros e os exibe. Porém, se o número 0 for inserido, o programa o imprime e para a execução. O exemplo a seguir demonstra esse loop do-while:

public class DoWhile {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int value;
        do {
            value = scanner.nextInt();
            System.out.println(value);
        } while (value != 0);
    }
}

Na prática, o loop do-while é menos utilizado que o loop while. Mas, pode ser útil quando o código dentro do loop precisa sempre ser executado ao menos uma vez antes de avaliar a condição.