Loops While e Do-While em Java

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:
- O valor 0 é atribuído à variável i.
- Antes da primeira execução do corpo do loop, o programa verifica se a condição i < 5 é verdadeira.
- Caso i seja menor que 5, então a condição é verdadeira e o corpo do loop começa a ser executado.
- O corpo tem duas instruções: 4.1 exibe o valor atual de i 4.2 incrementa o valor de i em 1
- A expressão i < 5 é avaliada novamente.
- Caso a condição seja verdadeira, volta ao passo 3.
- 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.




