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");

        }    
    }
}
¿Fue útil?

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
scroll top