Opa galera seguinte eu to qurendo fazer a seguinte condiçao dentro de um if mais nao sei a maneira correta…
if (opcaocadastro != int)
o usuario digita a opçao se for int prosegue o programa se nao ele cai no meu else porém esta dando errado a condiçao nao sei como fazer…
Isso aí é tarefa pra tratamento de exceção, cara…
mas se tu quer fazer isso, podes trabalhar com classe wrapper (Integer) e testar com o método instanceOf.
Abraço!
PS: Se tu tá recebendo esse valor de um JOptionPane da vida, o valor que vem é SEMPRE uma string, então vai dar problema aí… tens que fazer typecast. A exceção lançada nesse caso, se não me engano, é NumberFormatException… mas não tenho certeza.
Abraço!
evertonsilvagomesjav
e JOptionPane mesmo kkk
mais nao etendi muito bem sua explicaçao nao vou tentar aki
B
Bruno_Laturner
Não entendi a parte do “se a opção for int”?
Quais são os valores que essa opção pode ter?
evertonsilvagomesjav
olha o codigo...
packagecom.squadra.caixa.persistencia.principal;importjavax.swing.JOptionPane;importcom.squadra.caixa.persistencia.entidade.Banco;importcom.squadra.caixa.persistencia.entidade.Cliente;publicclassPrincipal{publicstaticvoidmain(String[]args){intopçaocadastro=0;Bancobanco=newBanco();do{try{opçaocadastro=Integer.parseInt(JOptionPane.showInputDialog("Digite 1 Para Cadastro - 2 Para Listar - 3 Para Pesquisar"));//if(opçaocadastro != int ){switch(opçaocadastro){case1:Longid=Long.parseLong(JOptionPane.showInputDialog("Digite o ID do Cliente"));Stringnome=JOptionPane.showInputDialog("Digite o nome do Cliente");Stringcpf=JOptionPane.showInputDialog("Digite o CPF do Cliente");Clientecliente=newCliente();cliente.setId(id);cliente.setNome(nome);cliente.setCpf(cpf);JOptionPane.showMessageDialog(null,cliente.toString());if(banco.cadastrarCliente(cliente)==true)JOptionPane.showMessageDialog(null,"Cliente Cadastrado");elseJOptionPane.showMessageDialog(null," Cadastrado Encerrado");break;case2:banco.listarClientes();break;case3:Longpesquisa=Long.parseLong(JOptionPane.showInputDialog("Digite o ID do Cliente Para Pesquisa-lo"));banco.pesquisaCliente(pesquisa);break;}//}else{//JOptionPane.showMessageDialog(null,"Leia as opções Zé Ruela");}}catch(Exceptione){JOptionPane.showMessageDialog(null,"Error: "+e.getMessage());}}while(opçaocadastro!=0);}
ai é o seguinte se o cara digitar algo q nao for 1, 2 ou 3 entrar no else se eu digitar por exemplo 5 ele nao sai do programa mais se eu digitar uma string ele sai daí que eu queria tratar o erro mais nao sei como..
}
leoramos
Entra no site da Caelum, pega a apostila do curso FJ-11 e estuda a parte de tratamento de exceção.
É o que tu precisas, tratar a exceção, o comportamento fora do padrão, inesperado.
É trabalho de faculdade? Abs!
evertonsilvagomesjav
ne trabalho de faculdade não, eu quero aprender mesmo, mais nao sei implementar isso
leoramos
É que se fosse coisa urgente de trabalho, eu corrigia no código pra ti.
Mas já que tu tá fazendo pra aprender, é bom que tu quebre a cabeça um pouco, daí já pega a manha.
Não é difícil não, e aquela apostila que eu falei é ótima e todo mundo indica por aqui… vai que é quente hehe
Abraço e bom estudo, fera!
edmarr
De novo o evertonsilvagomesjava , com perguntas sobre lógica e talz isto eh coisa básica , antes de fazer algo leia a apostila da www.caelum.com.br/apostilas
packagecom.squadra.caixa.persistencia.principal;importjavax.swing.JOptionPane;importcom.squadra.caixa.persistencia.entidade.Banco;importcom.squadra.caixa.persistencia.entidade.Cliente;publicclassPrincipal{publicstaticvoidmain(String[]args){intopçaocadastro=0;Bancobanco=newBanco();do{try{opçaocadastro=Integer.parseInt(JOptionPane.showInputDialog("Digite 1 Para Cadastro - 2 Para Listar - 3 Para Pesquisar"));//if(opçaocadastro != int ){}catch(Exceptione){JOptionPane.showMessageDialog(null,"Error: "+e.getMessage());}finally{JOptionPane.showMessageDialog(null,"Parametro informado errado !");}switch(opçaocadastro){case1:Longid=Long.parseLong(JOptionPane.showInputDialog("Digite o ID do Cliente"));Stringnome=JOptionPane.showInputDialog("Digite o nome do Cliente");Stringcpf=JOptionPane.showInputDialog("Digite o CPF do Cliente");Clientecliente=newCliente();cliente.setId(id);cliente.setNome(nome);cliente.setCpf(cpf);JOptionPane.showMessageDialog(null,cliente.toString());if(banco.cadastrarCliente(cliente)==true)JOptionPane.showMessageDialog(null,"Cliente Cadastrado");elseJOptionPane.showMessageDialog(null," Cadastrado Encerrado");break;case2:banco.listarClientes();break;case3:Longpesquisa=Long.parseLong(JOptionPane.showInputDialog("Digite o ID do Cliente Para Pesquisa-lo"));banco.pesquisaCliente(pesquisa);break;}//}else{//JOptionPane.showMessageDialog(null,"Leia as opções Zé Ruela");}}while(opçaocadastro!=0);}
Ta ai acima a correção ! .
evertonsilvagomesjav
vivendo e aprendendo ne edmar nunca e d mais perguntar pra quem sabe né =[ de qualquer forma obrigado novamente…
edmarr
Não foi uma critica apenas sugestão , de uma olhada na apostila ela eh pequena q tem um ótimo conteúdo .
Essa vale pra todos: Não se deixe intimidar. Tire suas dúvidas. Ainda há pessoas de boa-vontade. Porém, não se acomode a perguntar antes de fazer aquela pesquisa básica.
W
wesley
Você pode verificar tentando fazer o parser do objeto para um int, e verificar se vai cair numa exceção ou então verificar a instancia do objeto…
kkkk eu so noob mesm pô to começando agora tem nem duas semanas q to mechendo com java =[…mais é isso ai to correndo atraz
evertonsilvagomesjav
ONDE EU NOOBEI AQUI ? IGUAL VC TA FALANDO…
if(banco.cadastrarCliente(cliente)==true)
leoramos
evertonsilvagomesjava:
ONDE EU NOOBEI AQUI ? IGUAL VC TA FALANDO...
if(banco.cadastrarCliente(cliente)==true)
Everton, a comparação nesse código
if(banco.cadastrarCliente(cliente)==true)
não precisa do '== true', entende? Bastaria isso:
if(banco.cadastrarCliente(cliente))
e se fosse pra entrar no fluxo caso fosse false, e não verdadeiro, também não precisaria ser
if(banco.cadastrarCliente(cliente)==false)
ou mesmo
if(banco.cadastrarCliente(cliente)!=true)
bastaria isso:
if(!banco.cadastrarCliente(cliente))
Sacou?
evertonsilvagomesjav
o true eu saquei q nao precisava agora isso:
if(!banco.cadastrarCliente(cliente))
essa exclamaçao indica que o conteudo na frente e falso?
edmarr
Como o seu metodo
cadastrarCliente(cliente)
ele retorna um boolean ja satisfaz o contrato do IF ,que vc tem com o for de fornecer um valor de verdadeiro ou falso pra ele .
edmarr
evertonsilvagomesjava:
o true eu saquei q nao precisava agora isso:
if(!banco.cadastrarCliente(cliente))
essa exclamaçao indica que o conteudo na frente e falso?
o sinal de ! serve para o seguinte ,
booleanteste1=false;if(!teste1){System.out.println("valor real da variavel => "+teste1);}else{System.out.println("valor da variavel apos negar => "+teste1);}Iraescrever;valorrealdavariavel=>falsevalordavariavelaposnegar=>true
evertonsilvagomesjav
entendi quero saber da exclamaçao ela me retorna false neh:
if(!banco.cadastrarCliente(cliente))
edmarr
evertonsilvagomesjava:
entendi quero saber da exclamaçao ela me retorna false neh:
if(!banco.cadastrarCliente(cliente))
Olhe o meu penultimo post .
evertonsilvagomesjav
pelo que eu entendi ela nesse caso ! retorna a condiçao contraria do contrato do if…
edmarr
ele inverte o resultado , seh e verdadeiro vira falso , se eh falso vira verdadeiro e por ai vai =) ,