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.
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);
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]