Problemas com if

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!

e JOptionPane mesmo kkk

mais nao etendi muito bem sua explicaçao nao vou tentar aki

Não entendi a parte do “se a opção for int”?

Quais são os valores que essa opção pode ter?

olha o codigo…

[code]
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);
}[/code]

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…

}

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!

ne trabalho de faculdade não, eu quero aprender mesmo, mais nao sei implementar isso

É 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!

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 ! .

vivendo e aprendendo ne edmar nunca e d mais perguntar pra quem sabe né =[ de qualquer forma obrigado novamente…

Não foi uma critica apenas sugestão , de uma olhada na apostila ela eh pequena q tem um ótimo conteúdo .

Bom Estudo .

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.

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());
		}
	}
}

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

ONDE EU NOOBEI AQUI ? IGUAL VC TA FALANDO…

if(banco.cadastrarCliente(cliente)==true)

[quote=evertonsilvagomesjava]ONDE EU NOOBEI AQUI ? IGUAL VC TA FALANDO…

if(banco.cadastrarCliente(cliente)==true) [/quote]

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)[/code] ou mesmo [code]if(banco.cadastrarCliente(cliente)!=true)

bastaria isso:

if(!banco.cadastrarCliente(cliente))

Sacou?

o true eu saquei q nao precisava agora isso:

if(!banco.cadastrarCliente(cliente))  

essa exclamaçao indica que o conteudo na frente e falso?

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 .

[quote=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?
[/quote]

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

entendi quero saber da exclamaçao ela me retorna false neh:

if(!banco.cadastrarCliente(cliente))