Crear una calculadora en Java

Java es un lenguaje de programación cuya sintaxis es bastante compleja pero que se puede aprender desarrollando programas simples y muy didácticos. Así que vamos a usar Java para crear una calculadora.

Diseño de calculadora en Java

Al desarrollar la calculadora, debemos pensar a la calculadora como un sistema, el cual hay que dividir en subsistemas. El sistema cuenta con tres subsistemas:

  • Introducción de números
  • Selección de operación
  • Mostrar el resultado

Una vez que se pensó en la lógica para desarrollar el código para cada subsistema, hay que pensar cómo unir todo para poner en funcionamiento el sistema completo. 

Introducción de números

El programa tiene que solicitar al usuario que introduzca dos números. Pero además debe ser capaz de reconocer si el usuario introdujo dos números y si estos son enteros o no. Para lograr esto se han aplicado dos líneas de código: método int getInt() dos veces en el método main()

Una vez introducidos los dos números, una construcción if else se encarga de validar si el número es un entero, entonces asigna el valor introducido por el usuario a la variable num, y si no es un entero, entonces imprima en la consola un mensaje de error. 

Si los números son enteros quedan almacenados en las variables num1 y num2.

Selección de operación

Luego el sistema deberá indicar al usuario que seleccione la operación suma(+), resta(-), multiplicación(*) o división(/), mediante el método char getOperation().

Una vez que se ha introducido la operación, el programa debe ser capaz de reconocer si se ha introducido un carácter y además si el carácter coincide con +, – , * o /. Para validar esto se usa el método next() de scanner para leer toda la cadena y el método charAt(0)

Para determinar si los caracteres coinciden con +, – , * o / . Si existe un error, se imprime un mensaje indicando al usuario que cometió un error.

La operación elegida queda almacenada en la variable de nombre operation.

Mostrar el resultado

Las operaciones matemáticas que debe realizar la calculadora se programan usando una  estructura condicional switch case()

El resultado de la operación se almacena en la variable result y posteriormente el programa emite un mensaje indicando el resultado de la operación realizada.

Sintaxis del código

A continuación se puede ver el código con que se puede programar la calculadora en Java.

import java.util.Scanner;
public class Calculadora {
    static Scanner scanner = new Scanner(System.in);
    public static void main(String[] args) {
        int num1 = getInt();
        int num2 = getInt();
        char operation = getOperation();
        int result = calc(num1,num2,operation);
        System.out.println("El resultado de la operación: "+result);
    }
    public static int getInt(){
        System.out.println("Introduzca un número:");
        int num;
        if(scanner.hasNextInt()){
            num = scanner.nextInt();
        } else {
            System.out.println("Te has equivocado al introducir el número. Inténtalo de nuevo.");
            scanner.next();//recursividad
            num = getInt();
        }
        return num;
    }
    public static char getOperation(){
        System.out.println("Introduzca la operación:");
        char operation;
        if(scanner.hasNext()){
            operation = scanner.next().charAt(0);
        } else {
            System.out.println("Ha cometido un error al entrar en la operación. Inténtalo de nuevo.");
            scanner.next();//recursividad
            operation = getOperation();
        }
        return operation;
    }
    public static int calc(int num1, int num2, char operation){
        int result;
        switch (operation){
            case '+':
                result = num1+num2;
                break;
            case '-':
                result = num1-num2;
                break;
            case '*':
                result = num1*num2;
                break;
            case '/':
                result = num1/num2;
                break;
            default:
                System.out.println("La operación no se reconoce. Repite la entrada.");
                result = calc(num1, num2, getOperation());//recursividad
        }
        return result;
    }
}
¿Todavía no te has apuntado a nuestro Bootcamp?
Tenemos muchos cursos para ofrecerte y ¡TOTALMENTE GRATIS! Estos son algunos de ellos: