Transformando switch case em if/else

1 resposta
java
F

Galera porque esta dando errado minha compração aqui::

`public class CalculosMatematicos{

protected double num1;
protected double num2;
protected String operador;

public CalculosMatematicos(double num1, double num2, String operador) {
	this.num1 = num1;
	this.num2 = num2;
	this.operador = operador;	
}

  //operações matemáticas

        public double Operacao() throws Exception{
	double result;

            if (this.operador=="+") {
		result = new CalculosMatematicos(this.num1, this.num2, this.operador).soma();
	}
	
	else if (this.operador=="-") {
		result = new CalculosMatematicos(this.num1, this.num2, this.operador).menos();
	}
	
	else if (this.operador=="/") {
		result = new CalculosMatematicos(this.num1, this.num2, this.operador).divisao();
	}
	
	else if (this.operador=="*") {
		result = new CalculosMatematicos(this.num1, this.num2, this.operador).multiplicacao();
	}
	
	else if (this.operador=="^") {
		result = new CalculosMatematicos(this.num1, this.num2, this.operador).potencia();
	}
	
	else {
		throw new Exception("operador invalido.");
	}
	
	return result;
}`

1 Resposta

Lucas_Camara

Comparação entre Strings deve ser feita usando equals, assim:

String a = "valorA";
String b = "valorB";
a.equals(b); // false

Assim, o que realmente será comparado é o valor.

Do jeito que você está fazendo (usando “=”), o que está sendo comparado é a referência do objeto na memória, que é diferente.

Criado 23 de maio de 2016
Ultima resposta 23 de mai. de 2016
Respostas 1
Participantes 2