Leer números por teclado en Java y realizar operaciones aritméticas

Ejercicios básicos resueltos Java con estructura secuencial

En este ejercicio continuarás practicando cómo leer números por teclado en Java, realizar varias operaciones aritméticas con ellos y mostrar los resultados por pantalla. Es un ejemplo perfecto para quienes están empezando con el lenguaje y quieren practicar la entrada y salida de datos.

En concreto este ejercicio te ayudará a comprender:

  • cómo usar la clase Scanner para leer números por teclado
  • cómo aplicar operadores aritméticos
  • cómo mostrar resultados por consola mediante System.out.println()
  • cómo estructurar un programa básico completo en Java

EJERCICIO: leer números por teclado en Java, realizar operaciones aritméticas y mostrar resultados.

Escribe un programa que lea por teclado dos número de tipo double. A continuación realiza las operaciones aritméticas suma, resta, multiplicación y división de los dos números introducidos y finalmente muestra por consola el resultado de estas operaciones.

Primero se pedirá al usuario que introduzca los dos números de tipo double, por ejemplo:

Introduce el primer número: 3,4
Introduce el segundo número: 2,9

A continuación el programa realizará las operaciones aritméticas con ellos y después mostrará los resultados por pantalla. Los resultados se deben mostrar con este formato:

Resultados:
Suma ->  3.4 + 2.9 = 6.3
Resta -> 3.4 - 2.9 = 0.5
Multiplicación -> 3.4 * 2.9 = 9.86
División -> 3.4 / 2.9 = 1.1724137931034482

SOLUCIÓN

//Programa para leer números por teclado en Java
//realizar operaciones aritméticas
//y mostrar los resultados por pantalla
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        //se crea un Scanner para introducir los datos desde teclado
        Scanner sc = new Scanner(System.in);

        //se crean las variables numero1 y numero2 para almacenar los números introducidos
        //se crean las variables suma, resta, multiplicación, división para almacenar
        //el resultado de las operaciones aritméticas
        double numero1, numero2, suma, resta, multiplicacion, division;
        
        //lectura del primer número
        System.out.print("Introduce el primer número: ");
        numero1 = sc.nextDouble();

        //lectura del segundo número
        System.out.print("Introduce el segundo número: ");
        numero2 = sc.nextDouble();

        //realizar las operaciones aritméticas
        suma = numero1 + numero2;
        resta = numero1 - numero2;
        multiplicacion = numero1 * numero2;
        division = numero2 != 0 ? numero1 / numero2 : Double.NaN;

        //mostrar los resultados por pantalla
        System.out.println("Resultados:");
        System.out.println("Suma ->  " + numero1 + " + " + numero2 + " = " + suma);
        System.out.println("Resta -> " + numero1 + " - " + numero2 + " = " + resta);
        System.out.println("Multiplicación -> " + numero1 + " * " + numero2 + " = " + multiplicacion);
        System.out.println("División -> " + numero1 + " / " + numero2 + " = " + division);
    }
}

En los comentarios contenidos en el código puedes ver la explicación de cada una de las instrucciones del programa.

Para leer números por teclado en Java de tipo doble se utiliza el método nextDouble() de la clase Scanner. En concreto, las instrucciones para leer los números son:

numero1 = sc.nextDouble();
numero2 = sc.nextDouble();

Después de la introducir los números por teclado se realizan las operaciones aritméticas mediante los operadores aritméticos

+   suma           -   resta           *   multiplicación           /   división

suma = numero1 + numero2;
resta = numero1 - numero2;
multiplicacion = numero1 * numero2;
division = numero2 != 0 ? numero1 / numero2 : Double.NaN;

Cuando se realiza la división entre dos números, antes de realizar la operación se debe comprobar que el denominador sea distinto de cero ya que si se hace una división por cero obtendremos un error. En concreto, si dividimos un número por cero en Java obtendremos una excepción

Exception in thread "main" java.lang.ArithmeticException: / by zero

Para evitar que esto ocurra, antes de realizar la división se debe comprobar siempre que el denominador no sea cero. En nuestro caso, debemos comprobar que numero2 sea distinto de 0.

Normalmente esta comprobación se realiza mediante una instrucción if de este tipo:

if(numero2 != 0){
   division = numero1 / numero2;
} else {
   System.out.println("No se puede dividir por cero");
}

Como este ejercicio pertenece al grupo de ejercicios resueltos java con estructura secuencial, es decir, ejercicios básicos en los que aún no se utilizan instrucciones condicionales ni bucles, para comprobar si numero2 es distinto de cero se ha utilizado el operador condicional Java también llamado operador ternario.

division = numero2 != 0 ? numero1 / numero2 : Double.NaN;

Si numero2 es distinto de cero se realiza la división y el resultado de la operación se guarda en la variable división.

Si numero2 es igual a 0 a la variable división se le asigna el valor Double.NaN NaN significa Not a Number (No es un número). En Java, NaN es el valor que se obtiene cuando se produce un error por ejemplo al dividir un número entre 0 o al calcular la raíz cuadrada de un número negativo.

En este caso para evitar obtener un error al dividir en el caso de que numero2 sea cero, asignamos a la variable división el valor Double.NaN

Variantes del ejercicio para seguir practicando

Puedes realizar las siguientes variantes de este ejercicio para seguir practicando las instrucciones para leer números por teclado en Java, realizar operaciones aritméticas y mostrar los resultados por pantalla.

  • Realiza el ejercicio con números de tipo int
  • Calcula además el resto de la división de numero1 entre numero2
  • Modifica el formato de la salida por consola para practicar con el método System.out.println()
  • Introduce tres números en lugar de dos y realiza operaciones aritméticas entre ellos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio