| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/05/2010 08:02:27
|
janjan
JavaEvangelist
![[Avatar]](/images/avatar/ead79bebb88514b1e270b8856af6fce1.png)
Membro desde: 25/09/2008 18:44:25
Mensagens: 434
Offline
|
Esse prog simplesmente imprimi a soma de 2 nros, se digitar uma letra ou numero invalido ele sugere tentar novamente... mas se eu errar a digitação 5 vezes e acertar na sexta... ele imprime o 1º resultado correto e mais 5 resultados zerados! pra mim é estranho! se souberem uma explicação simples, porem que tire a duvida! agradeço abraços
This message was edited 1 time. Last update was at 26/05/2010 08:05:21
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/05/2010 08:16:25
|
gabrielbzan
Entusiasta Java
Membro desde: 09/09/2006 13:47:59
Mensagens: 16
Offline
|
é que voce declara o float f = 0. Depois voce erra o numero e cai no catch, chamando o mesmo método.
Como voce capturou a exceção, o codigo segue sendo executado, no caso o "return f; ".
Ou seja, se voce errar 10 vezes, vao ocorrer 10 "return f", onde f será igual a Zero, declardo no começo do método!
entendeu?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/05/2010 08:19:57
|
luiz.portnoy
JavaChild
![[Avatar]](/images/avatar/e19de38bc4d7571373729c47843d6827.jpg)
Membro desde: 11/05/2010 13:56:09
Mensagens: 137
Localização: Vitória - ES
Offline
|
1º: Não utilize todos os métodos como static. Não que isso não seja certo mas, acaba não sendo Orientação a Objetos.
2º: Não precisa sempre escrever java.lang.System.out.print . java.lang é uma pacote que já "entendido automaticamente", portanto não precisa declará-lo.
3º: Como o gabrielbzan falou, sempre a váriavel é zerada.
Espero ter ajudado.
|
Triste: Mike Portnoy saiu do Dream Theater... |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/05/2010 08:22:25
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20578
Localização: Curitiba/PR
Offline
|
O problema é que você está utilizando recursão. Quando você sair do método chamaCalcula correto, o código irá voltar para o testeCalcula que o chamou. O ideal é fazer um parseFloat de cada vez.
Outra coisa. Você criou o método p e não está usando. Também não é necessário digitar "java.lang" antes de "System.out.println". Finalmente, desde o Java 5, recomenda-se fazer entrada com a classe Scanner, no lugar da BufferedReader:
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/05/2010 08:31:32
|
janjan
JavaEvangelist
![[Avatar]](/images/avatar/ead79bebb88514b1e270b8856af6fce1.png)
Membro desde: 25/09/2008 18:44:25
Mensagens: 434
Offline
|
me acostumei usar o java.lang.System.out.println...
coisa da aplicação que trabalho, que se nao for assim nao faz o print.
esqueci de deixa o método p();
ele só fazia o println! hehehe
mas intendi a logica agora! e bom esse teu pensamento viny!
a experiencia ajuda bastante! hehe
abraços!
|
|
|
 |
|
|