Desculpem pela minha dúvida já que é mais lógica de programação mesmo...
Más sou iniciante ainda.... :)
estou resolvendo alguns exercicíos de um apostila e me parei nesse...
preciso imprimir os números impares de 1 á 30 e somá-los...
classExerc7{publicstaticvoidmain(String[]args){intcount;intsoma=0;for(count=1;count<=30;count++){if(count%2==1){soma+=count;continue;}System.out.println("Contador: "+count+" Soma dos Numeros Impares: "+soma);}}}
bom ele imprimi a soma dos números impares, más o contador imprimi os números pares.
agora se eu mudo o meu if assim:
if(count%2==0){
ele imprimi o contador com os números impares e a soma dos números pares...
por favor alguém pode me dizer a cacada que estou fazendo...
o modo de achar números impares (count % 2 == 1) e os pares (count % 2 == 0) está certo néh...
por favor se alguém poder me explicar...
Tira o continue e coloca o System.out.println dentro do if.
Kassiane_Pretti
classExerc7{publicstaticvoidmain(String[]args){intcount;intsoma=0;for(count=1;count<=30;count++){if(count%2!=0){soma+=count;System.out.println("Contador: "+count);//imprimirá os numeros impares somente}}System.out.println("Soma dos Numeros Impares: "+soma);//irá mostrar a soma dos numeros impares somente}}
Desculpem pela minha dúvida já que é mais lógica de programação mesmo...
Más sou iniciante ainda.... :)
estou resolvendo alguns exercicíos de um apostila e me parei nesse...
preciso imprimir os números impares de 1 á 30 e somá-los...
classExerc7{publicstaticvoidmain(String[]args){intcount;intsoma=0;for(count=1;count<=30;count++){if(count%2==1){soma+=count;continue;}System.out.println("Contador: "+count+" Soma dos Numeros Impares: "+soma);}}}
bom ele imprimi a soma dos números impares, más o contador imprimi os números pares.
agora se eu mudo o meu if assim:
if(count%2==0){
ele imprimi o contador com os números impares e a soma dos números pares...
por favor alguém pode me dizer a cacada que estou fazendo...
o modo de achar números impares (count % 2 == 1) e os pares (count % 2 == 0) está certo néh...
por favor se alguém poder me explicar...
A forma de ver se um inteiro é par ou impar é dessa forma sim.
Estão aparecendo os números pares pois você está usando o System.out.println fora do if e tbm está usando a instrução continue, que vai fazer com que o restante do loop não seja executado. Quando vc acha um impar, vc soma e dá continue, sendo assim, ele incrementa o contador e volta para o if. Se não passa no if (o contador vai ser par) ele imprime usando o System.out.println
Solução:
Tire o continue e coloque o System.out.println dentro do if.
havia colocado o continue por casa de um exemplo q vi em outro lugar…
acho q ñ entendi bem o uso dele então… vc poderia me esplicar???
nbluis
O continue faz ele ir direto para a próxima iteração do for(caso exista), sem passar pelo resto do bloco de código da iteração atual.
davidbuzatto
Como eu disse, o continue serve para você “parar” a interação atual do loop.
Quando o continue é encontrado, tudo que vem depois dele não é executado, fazendo com que o loop inicie a próxima iteração.
Se você quer quebrar o loop inteiro (parar ele) vc usa a instrução break.
Existem outras formas de se usar o continue e o break (usando labels), mas isso vc aprende depois
Até mais!
Renato_Freitas
já erá mano deu certo…
havia colocado o continue por casa de um exemplo q vi em outro lugar…
acho q ñ entendi bem o uso dele então… vc poderia me esplicar???
qual a lógica do continue então… ele é muito uzado?
Renato_Freitas
valeu então pessoal…
muito obrigado pela ajuda de todos…
até mais :lol:
davidbuzatto
já erá mano deu certo…
havia colocado o continue por casa de um exemplo q vi em outro lugar…
acho q ñ entendi bem o uso dele então… vc poderia me esplicar???
qual a lógica do continue então… ele é muito uzado?
Um exemplo é uma situação onde não há necessidade de se executar o restante do corpo do loop.
Renato_Freitas
to embassando já neh :)
fiz alguns testes neste trecho do código e notei algumas diferenças..
soma += count;
quando somo ou subtraiu dá certo...
más quando eu multiplico ou divido assim o total deles dá sempre zero porque?????
soma *= count;
ou
soma /= count;
nbluis
Um teste de mesa resolve essa duvida.
Lembre-se que a variável soma começa com o valor 0;
Renato_Freitas
caramba é lógico como vou dividir ou multiplicar por zero néh foi mal…
vou fazendo os testes no código e ñ da certo ai fico caramba por que…
e o negoço tá bem na frente neh
valewww
Emersonsts
Nunca vi esse “continue” pra que serve?
davidbuzatto
Leia as respostas anteriores… Dê uma olhada no material de certificação que você está estudando, pois lá deve haver explicações sobre o assunto.
Até mais!
Emersonsts
Na verdade ainda nao estou estudando…
To esperando o livro chegar…
=]
Emersonsts
davidbuzatto:
Como eu disse, o continue serve para você “parar” a interação atual do loop.
Quando o continue é encontrado, tudo que vem depois dele não é executado, fazendo com que o loop inicie a próxima iteração.
Se você quer quebrar o loop inteiro (parar ele) vc usa a instrução break.
Existem outras formas de se usar o continue e o break (usando labels), mas isso vc aprende depois