Ajuda com do while

Pessoal, estou começando a aprender Java, estou seguindo a apostila 11 da caelum, muito boa por sinal nem acredito que estou entendendo com um pouco de facilidade, mas estou na dúvida como eu posso fazer um loop que me mostre os números pares no intervalo de 0 a 50?

class ExemploDoWhile1 { public static void main(String[] args) { int contador = 0; do { System.out.println(contador); contador++; } while (contador <= 50); } }

Onde eu coloco o if para que me mostre apenas numeros pares? Eu consigo fazer o loop usando o for, mas como ficaria usando o do while? Outra dúvida aproveitando o tópico quando se deve usar o while e quando deve usar o do while? Ou não tem diferença alguma em que momento usar?

Para mostrar os pares use o operador mod (%), para saber o resto da divisão por 2.
O “do while” você usa quando quer que execute pelo menos uma vez, e o “while” pode ser que nem execute.

vc faz o if dentro da estrutura do loop te aconselho usar % 2 pra ver quem é par e quem é impar, sim loop com o for vc vai fazer tipo assim

for(int i =0; i < 50; i++){
codigo....
}

do while se nao me engano o sentido de <= ta certo, sobre o momento de usar sim tem diferenças grandes quanto a utilização, com o do while vc tem mais controle a quantidade de loops isso a meu ver eh claro,se eu fosse vc usaria mais for, que pra mim é bem melhor

[code]
public class Teste {
public static void main(String args[]){
for(int i = 0; i <= 50; i++ ){
if(i%2==0)
System.out.println("Numero Par com FOR: " + i);
}

	int contador = 0;
	while(contador <= 50){
		contador++;
		if(contador%2==0)
			System.out.println("Numero Par com WHILE: " + contador);
	}
	int j = 0;
	do{
		j++;
		if(j%2==0)
			System.out.println("Numero Par com DO: " + j);
	}while(j <= 50);
}

}[/code]

ABS …

Quando se tem a noção de quantos loops vc vai dar o certo é usar o for.

Por exemplo: em uma lista vc tem o método size q retorna a quantidade de vezes q vc vai percorrer.

Quando não se tem a quantidade de vezes a fazer um loop, se usa o while. Como por exemplo um método hasNext() q não te trás a quantidade, mas sim se ainda existe um próximo.

A diferença entre o “while” e o “do while”, assim como o amigo em cima disse, é q o “do while” percorre pelo menos uma vez antes de fazer o teste para percorrer de novo. Já o “while” primeiro faz o teste, se for falso ele nem executa o código dentro dele.

Aff… sério mesmo que vocês pensaram em usar o mod?

Não é mais fácil somar de 2 em 2?

class ExemploDoWhile1 { public static void main(String[] args) { int contador = 0; do { System.out.println(contador); contador+=2; } while (contador <= 50); } }

Aliás, não só é mais fácil, como o código roda com o dobro da eficiência…

Outra maneira de fazer isso sem usar o if é só substituir o comando contador++ por contador+=2 ai em vez de ele somar um por um ele vai somar de 2 em 2 ou seja vai apenas mostrar os números pares entre 0 e 50

O cara está apenas começando.
Isso é apenas lógica de programação.
Mais pra frente nos estudos, isto será uma lista, em q o if será diferente.

Então é bom deixar pensar para aprender…

Ou so pensaram no MOD como eu tbm pensei… afinal, pensei que ele realmente iria querer percorrer a lista toda, do tipo X eh PAR, Y eh IMPAR…

So que eu viajei, afinal no enunciado ele nao pede isso mesmo…

Pensei no Mod de cara… hehehehehe

Quanto ao uso do For… creio que ele esta usando Do While porque deve ser algum exercicio com a estrutura e nao por achar que eh melhor…

Abs []

eu acho que a questao do contador ir de 2 em 2 muito mais simples mas e quanto a logica necessaria pra colocar mod?? aprender isso eu acho meio desnecessario mas da pra fazer varias logicas utilizando o mod

Pessoal muito obrigado pelas explicações. E sim, eu estou aprendendo e estou tentando resolver alguns códigos básicos pela net e na apostila da caelum. Colocar a variável contador+=2 é interessante eu nao tinha pensado em contar de 2 em 2 hehe.

Muito obrigado pessoal agora eu entendi a diferença de while para do while!!!

  1. Também estou começando por aqui e pela Caelum. Só gostaria de dar meu 1º post aqui, e agradecer a todos do GUJ ! conto com voces e espero um dia ajudar o proximo qd ter mais experiencia.

este post me ajudou tbm,
mas acho que contar de 2 em dois pode nao dar serto quando existe uma variavel no lugar do numero inicial,
pois se uma hora essa variavel for um numero impar ela vai mostrar essa variavel mais 2, que sera impar denovo;
ja se usarmos o mod:
seja la qual for o numero inicial, mostrara somente os pares ate o numero final desejado!!!

[quote=FabinhoGil]este post me ajudou tbm,
mas acho que contar de 2 em dois pode nao dar serto quando existe uma variavel no lugar do numero inicial,
pois se uma hora essa variavel for um numero impar ela vai mostrar essa variavel mais 2, que sera impar denovo;
ja se usarmos o mod:
seja la qual for o numero inicial, mostrara somente os pares ate o numero final desejado!!![/quote]

Nesse caso, é só colocar um if no número inicial, e somar 1 quando ele for impar.
A vantagem de somar de 2 em 2 é que o computador faz 2x menos trabalho. Na verdade, até um pouco mais, pois você também evita o teste a cada passo do loop.

entendi
mesmo dando um lop a mais:
ainda e melhor que usar o mod…