Do...while e while

Existe diferença no resultado entre estes dois comandos de loop? Ou a diferença é apenas na maneira de escrever?

Existe.

while (___) {
      ___
}

testa antes de entrar. Portanto o código pode nem ser executado.

do {
      ___
} while (______);

testa depois de entrar no loop. Portanto o código será executado pelo menos uma vez.

Este post Detalha bem estes assunto.

Qual a vantagem/desvantagem de o código ser ou não executado?
Você tem algum exemplo elucidativo?

[quote=entanglement]Existe.

while (___) {
      ___
}

testa antes de entrar. Portanto o código pode nem ser executado.

do {
      ___
} while (______);

testa depois de entrar no loop. Portanto o código será executado pelo menos uma vez.

[/quote]

Quando você precisa que alguma coisa seja executada, no mínimo, uma vez e no máximo muitas, utiliza o do/while.
Se um determinado trecho de código pode ser executado um número x de vezes, mas isso depende da condição inicial da variável, utilize apenas while.

int e = 0;
while(e < 100){
  System.out.println(e);
 e++;
}

Ou

int e = 0;
do{
System.out.println(e)
e = Integer.parseInt(JOptionPane.showInputDialog("Valor de e:"));
}while(e != 100);
1 curtida

a grande diferença de while e o do while, o while pra ser executado precisa de um condição verdadeira, e no caso do do while ele executa pelo menos uma vez o do while, se a condição for falsa sai do while, senão continua o laço.

qualquer duvida posta ai

Me parece perda de tempo você executar um código e só depois saber se ele vai ou não ser aplicado.

O que vocês acham?

[quote=fabioaugusto_bio]Me parece perda de tempo você executar um código e só depois saber se ele vai ou não ser aplicado.

O que vocês acham?[/quote]

Ai meu Deus…

bom cara perda de tempo não é não… tudo depende da condição que vc quer fazer e do seu cenário na hora do desenvolvimento…

Vc tah começando agora com programação ne?

Você já aprendeu expressões regulares?

Acho que pessoas que estão aprendendo programação entendem melhor a parte de expressões regulares que a parte da programação “procedural” em si, que é o que você está aprendendo.

Em uma expressão regular, você pode verificar se uma determinada string bate com um ou mais caracteres (nesse caso você usa o “+”) ou com zero ou mais caracteres (nesse caso você usa o “*”). Por exemplo:

“CAFE[0-9]*” bate com qualquer coisa que comece com “CAFE” e termine com zero ou mais dígitos (ou seja, 0 até 9). Por exemplo, bate com “CAFE” ou com “CAFE0019”, mas não com “CAFEBABE” (que não termina com 0 ou mais dígitos).

“CAFE[0-9]+” bate com qualquer coisa que comece com “CAFE” e termine com um ou mais dígitos (ou seja, 0 até 9). Por exemplo, bate com “CAFE7” ou com “CAFE0019”, mas não com “CAFE” (que não termina com 1 ou mais dígitos).

O “do/while” serve para coisas do tipo “um ou mais” e o “while” simples serve para coisas do tipo “zero ou mais”. Está satisfeito?

Valeu entanglement!!!

Muito boa explicação!!!

Agradeço aos demais também.

[quote=entanglement]Você já aprendeu expressões regulares?

Acho que pessoas que estão aprendendo programação entendem melhor a parte de expressões regulares que a parte da programação “procedural” em si, que é o que você está aprendendo.

Em uma expressão regular, você pode verificar se uma determinada string bate com um ou mais caracteres (nesse caso você usa o “+”) ou com zero ou mais caracteres (nesse caso você usa o “*”). Por exemplo:

“CAFE[0-9]*” bate com qualquer coisa que comece com “CAFE” e termine com zero ou mais dígitos (ou seja, 0 até 9). Por exemplo, bate com “CAFE” ou com “CAFE0019”, mas não com “CAFEBABE” (que não termina com 0 ou mais dígitos).

“CAFE[0-9]+” bate com qualquer coisa que comece com “CAFE” e termine com um ou mais dígitos (ou seja, 0 até 9). Por exemplo, bate com “CAFE7” ou com “CAFE0019”, mas não com “CAFE” (que não termina com 1 ou mais dígitos).

O “do/while” serve para coisas do tipo “um ou mais” e o “while” simples serve para coisas do tipo “zero ou mais”. Está satisfeito?

[/quote]