Si la declaración no funciona [duplicado]
-
20-12-2019 - |
Pregunta
Soy nuevo en la programación y agradecería algo de ayuda.La más mínima idea sería muy apreciada.Tengo un problema con el siguiente código.El programa emula una calculadora, pero actualmente mi atención principal está en las declaraciones if y else if. El problema es que no importa lo que seleccione el usuario, el programa siempre sumará los dos números, es decir.'número1' y 'número2' en el código
import java.util.*;
public class Input
{
private Scanner input;
public Input()
{
input = new Scanner(System.in);
}
public void calculation()
{
double number1, number2, answer;
String A, B, C, D, E;
String option;
A = "A"; B = "B"; C = "C"; D = "D"; E = "E"; //initialising the strings
System.out.println("add - option A \t (if your option is A, insert 'A')");
System.out.println("multiply - option B");
System.out.println("subtract - option C");
System.out.println("divide - option D");
System.out.println("power - option E (1st number - 'X' & 2nd number - 'n' following X^n)");
System.out.println("Remember Java is case sensitive, therefore, inserting 'a' as 'A' won't work");
System.out.println();
System.out.println("Insert your first number: ");
number1 = input.nextDouble();
System.out.println("Insert your second number: ");
number2 = input.nextDouble();
System.out.println("Choosing option: ");
option = input.next();
if(A == A)
{
answer = number1 + number2;
System.out.println("Your answer is: " + answer);
}
else if(B == B)
{
answer = number1 * number2;
System.out.println("Your answer is: " + answer);
}else if(C == C)
{
answer = number1 - number2;
System.out.println("Your answer is: " + answer);
}else if(D == D)
{
answer = number1 / number2;
System.out.println("Your answer is: " + answer);
}else if(E == E)
{
answer = Math.pow(number1, number2);
System.out.println("Your answer is: " + answer);
}else
{
System.out.println("Choose a suitable option");
}
}
}
Solución
Estás obteniendo la opción seleccionada a partir de la entrada del usuario en option = input.next();
línea y luego no usarla en sus declaraciones if.
En lugar de if(A == A)
usar if(option.equals(A))
y así sucesivamente para otros casos.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow