galera como eu faço para “resetar” o valor de uma variavel…
é pq tipo assim, eu crio uma variavel e pço pro usuario colocar um valor nela. ai se ele colocar algo indevido (letras) eu faço com que o programa inicie dnovo e peça para ele colocar esse valor novamente… só que no final, mesmo o kra colocando um número o valor da variavel fica zerada…
abaixo o código:
importjavax.swing.*;publicclassrecebetelefone{doublete;//esta é a variável que qro "resetar" quando eu reiniciar o programa......publicdoublerecebetel(){try{Stringte2=JOptionPane.showInputDialog(null,"texto","Dados",1);this.te=Double.parseDouble(te2);}catch(NumberFormatExceptione){JOptionPane.showMessageDialog(null,"texto","Erro",1);recebetelefoner=newrecebetelefone();r.recebetel();}returnthis.te;}}
a variavel está fora da classe que eu reinicio… entao eu já pesquisei como reiniciar uma variavel… + nun encontrei nada…
Cara... não entendi direito o que vc quer... mas pelo que eu entendi é meio que na logica a falha.
vc ta tentando tratar um erro dentro do objeto com recursão ainda por cima... Acontece assim: Quando vc ta retornando o "te" vc esta retornando o primeiro que foi chamado, entendeu? Não??? Exatamente por isso que eh um erro de logica... rsrsrs :D
Tenta tratar esse erro na classe que esta chamando esse seu objeto, vou tentar mostrar:
galera vlw mesmo pela ajuda, quando eu conseguir eu tento esses comandos…
E
els1234
galera deu certo…
eu fiz como o MaxVenom indicou…
tratei o erro na chamada da classe…
VLW MESMO PELA AJUDA…
Marky.Vasconcelos
A variavel continua zerada por que voce simplesmente cria um novo objeto e manda ele chamar o método recebetel novamente. O retorno dessa variavel é perdida e voce continua com o que voce tinha.
Voce poderia ter feito o seguinte.
importjavax.swing.*;publicclassrecebetelefone{doublete;//esta é a variável que qro "resetar" quando eu reiniciar o programa......publicdoublerecebetel(){try{Stringte2=JOptionPane.showInputDialog(null,"texto","Dados",1);this.te=Double.parseDouble(te2);}catch(NumberFormatExceptione){JOptionPane.showMessageDialog(null,"texto","Erro",1);returnrecebetel();}returnthis.te;}}
Assim se caisse na exceção o programa chamaria o proprio metodo novamente fazendo com que o usuario digite o valor denovo. Isso é recursivo e só vai sair do método quando ele digitar um valor correto.