Duvida Código Java

2 respostas
K

Olá, sou iniciante em Java, e estava tentando criar um espécie de calculadora e me deparei com alguma dúvidas. Quando faço a comparação usando o IF que eu falo conta ==“Multiplicação” ele não reconhece e sempre cai no else que não é em nenhum dos casos. Alguém sabe uma forma correta de representar essa situação? Obrigado pela atenção!

import javax.swing.JOptionPane;

public class calculadora{
public static void main(String[] args){

String operacao = JOptionPane.showInputDialog("Digite o tipo de operacao:");
String digito1 = JOptionPane.showInputDialog("Digite o primeiro digito:");
String digito2 = JOptionPane.showInputDialog("Digite o segundo digito:");

String conta = operacao;
int numero1 = Integer.parseInt(digito1);
int numero2 = Integer.parseInt(digito2);

double vezes = numero1 * numero2;
double dividido = numero1 / numero2;
double menos = numero1 - numero2;
double mais = numero1 + numero2;


if(conta =="multiplicacao"){
JOptionPane.showMessageDialog(null, vezes);
}

else if(conta=="divisao"){
JOptionPane.showMessageDialog(null, dividido);
}

else if(conta=="subtracao"){
JOptionPane.showMessageDialog(null, menos);
}

else{
JOptionPane.showMessageDialog(null, mais);
}

}

}

2 Respostas

A

Olá em vez de usares o == use o equals : conta.equals(“multiplicacao”). O java trata strings como objetos diferentes e o == só considerá igual duas variáveis quanto tiverem apontado para o mesmo objeto .

regis_hideki

Complementando, o == só considerá igual duas variáveis quanto tiverem apontado para o mesmo objeto OU quando os valores de tipos primitivos forem iguais (int, char, boolean, double, etc).

Criado 9 de janeiro de 2014
Ultima resposta 10 de jan. de 2014
Respostas 2
Participantes 3