Me expliquem sobre o laço While, de maneira que leve a um rápido entendimento, por favor.
http://www.tiexpert.net/programacao/java/while.php
While é uma estrutura de repetição.
While executa uma comparação com a variável. Se a comparação for verdadeira, ele executa o bloco de instruções ( { } ) ou apenas a próxima linha de código logo abaixo.
Procedemos da seguinte maneira:
WHILE (comparação)
O problema com estruturas de repetição, principalmente com while, é o que chamamos de looping infinito. Damos esse nome ao fato de que o programa fica repetindo a mesma sequência de códigos esperando por um resultado que nunca irá acontecer.
Portanto, é imprescindível que uma determinada variável seja modificada de acordo com cada loop. Veja o exemplo
public class ExemploWhile {
public static void main(String args[]) {
int contador = 0;
while (contador < 50) {
System.out.println("Repetição nr: " + contador);
contador++;
}
}
}
Como podemos ver, existe a variável contador que é iniciada valendo 0, a cada loop executado (repetição) é somado 1 ao contador. Perceba que o while irá manter a repetição enquanto a variável contador for menor que 50.
Outro ponto importante é que a variável contador é inicializada antes de chegar ao while, porque o while irá comparar a sentença e só depois permitirá a execução do bloco. Se quisermos fazer todo o bloco primeiro e só depois fazer a comparação, devemos utilizar o comando DO WHILE
DO WHILE
DO WHILE é uma estrutura de repetição, tal como o próprio while. A principal diferença entre os dois é que DO WHILE irá fazer a comparação apenas no final do bloco de código, sendo representado da seguinte forma:
DO { código } WHILE (comparação);
Neste caso, devemos ter as mesmas precauções quanto while, no que diz respeito a looping infinito. Mas não é necessário inicializar a variável antes do bloco de código como acontece com while, pois a comparação só será feita após todo o código ter sido executado.
Funciona assim:
enquanto a condição for verdadeira {
executa as instruções
}
Abner,
Podemos realizar o incremento do contador na comparação do While, como nos exemplos abaixo.
public class UsoWhile {
public UsoWhile() {
int i=0;
while (++i < 50) {
System.out.println(i);
}
}
}
public class UsoWhile {
public UsoWhile() {
int i=0;
while (i++ < 50) {
System.out.println(i);
}
}
}
public class UsoWhile {
public UsoWhile() {
int i=(-1);
while (i++ < 50) {
System.out.println(i);
}
}
}