Problemas com if

23 respostas
evertonsilvagomesjav

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…

23 Respostas

leoramos

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

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...
package com.squadra.caixa.persistencia.principal;

import javax.swing.JOptionPane;

import com.squadra.caixa.persistencia.entidade.Banco;
import com.squadra.caixa.persistencia.entidade.Cliente;

public class Principal {


	
public static void main(String[] args) {

int opçaocadastro=0;

Banco banco = new Banco();

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){

	case 1:
	
	Long id=Long.parseLong(JOptionPane.showInputDialog("Digite o ID do Cliente"));
	String nome=JOptionPane.showInputDialog("Digite o nome do Cliente");
	String cpf=JOptionPane.showInputDialog("Digite o CPF do Cliente");
	
	Cliente cliente = new Cliente();
	cliente.setId(id);
	cliente.setNome(nome);
	cliente.setCpf(cpf);
	
	JOptionPane.showMessageDialog(null,cliente.toString());
	
	if(banco.cadastrarCliente(cliente)==true)
	JOptionPane.showMessageDialog(null,"Cliente Cadastrado");	
	else
	JOptionPane.showMessageDialog(null," Cadastrado Encerrado");	
	break;	
	
	case 2:
	banco.listarClientes();
	
	break;
	
	case 3 :
	
	Long pesquisa=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(Exception e){
	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

package com.squadra.caixa.persistencia.principal;

import javax.swing.JOptionPane;

import com.squadra.caixa.persistencia.entidade.Banco;
import com.squadra.caixa.persistencia.entidade.Cliente;

public class Principal {


	
public static void main(String[] args) {

int opçaocadastro=0;

Banco banco = new Banco();

do{
	try{
	opçaocadastro=Integer.parseInt(JOptionPane.showInputDialog("Digite 1 Para Cadastro - 2 Para Listar - 3 Para Pesquisar"));
	//if(opçaocadastro != int ){
	}catch(Exception e){
		JOptionPane.showMessageDialog(null, "Error: " +e.getMessage());
	}finally{
		JOptionPane.showMessageDialog(null, "Parametro informado errado !");
	}

switch(opçaocadastro){

	case 1:
	
	Long id=Long.parseLong(JOptionPane.showInputDialog("Digite o ID do Cliente"));
	String nome=JOptionPane.showInputDialog("Digite o nome do Cliente");
	String cpf=JOptionPane.showInputDialog("Digite o CPF do Cliente");
	
	Cliente cliente = new Cliente();
	cliente.setId(id);
	cliente.setNome(nome);
	cliente.setCpf(cpf);
	
	JOptionPane.showMessageDialog(null,cliente.toString());
	
	if(banco.cadastrarCliente(cliente)==true)
	JOptionPane.showMessageDialog(null,"Cliente Cadastrado");	
	else
	JOptionPane.showMessageDialog(null," Cadastrado Encerrado");	
	break;	
	
	case 2:
	banco.listarClientes();
	
	break;
	
	case 3 :
	
	Long pesquisa=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 .

Bom Estudo .

O

http://www.refactoring.com/catalog/replaceConditionalWithPolymorphism.html

http://www.guj.com.br/posts/list/130621.java

Java noob detected. Wel come Mag… oops. :smiley:

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

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…

Tente isso:

public class TestInstance {
	public static void main(String[] args) {
		final Object object = 10;
		if(object instanceof Integer) {
			System.out.println("Integer");
		} else {
			System.out.println(object.getClass());
		}
	}
}
evertonsilvagomesjav

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 ,

boolean teste1 = false; 

if(!teste1){
   System.out.println("valor real da variavel    => " + teste1);
}else{
   System.out.println("valor da variavel apos negar    => " + teste1);
}


Ira escrever  ;
valor real da variavel    => false
valor da variavel apos negar  => 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 =) ,

Pelo amor de Deus Leia a apostila da Caelum .

evertonsilvagomesjav

rsrsrs vou ler ela pode deixar

Criado 28 de agosto de 2009
Ultima resposta 28 de ago. de 2009
Respostas 23
Participantes 6