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.
G
guialeixo
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(inti=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
dxos
publicclassTeste{publicstaticvoidmain(Stringargs[]){for(inti=0;i<=50;i++){if(i%2==0)System.out.println("Numero Par com FOR: "+i);}intcontador=0;while(contador<=50){contador++;if(contador%2==0)System.out.println("Numero Par com WHILE: "+contador);}intj=0;do{j++;if(j%2==0)System.out.println("Numero Par com DO: "+j);}while(j<=50);}}
ABS ..
aluisiodsv
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.
ViniGodoy
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…
R
rcarauta
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
aluisiodsv
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…
adriano_si
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 []
G
guialeixo
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
M
mazoni
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!!!
B
Barbini
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.
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!!!
ViniGodoy
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!!!
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.
FabinhoGil
entendi
mesmo dando um lop a mais:
ainda e melhor que usar o mod…