viernes, 31 de mayo de 2019

Condicionales en Java III - El condicional switch - Cómo crear una calculadora

Condicionales en Java III - El condicional switch - Cómo crear una calculadora

Java condicional switch
Para acabar por el momento con los condicionales en Java, nos queda por ver el condicional switch, aunque seguiremos viendo más ejemplos prácticos en el futuro. 
El condicional switch permite evaluar cuantas condiciones quiera el programador.
El condicional if evalúa si una condición es true (verdadera) o false (falsa), el switch en cambio, te permite crear opciones y solo la que se cumpla se ejecutará.

Para explicarlo de una forma práctica y más sencilla de entender, he programado una simple calculadora capaz de sumar, restar, multiplicar y dividir con decimales.

Ejemplos prácticos con el condicional switch. Creando una calculadora.

Como crear una calculadora en Java

Para este ejemplo he utilizado la clase Scanner del paquete java.util (java.util.Scanner) y la clase JOptionPane del paquete javax.swing (javax.swing.JOptionPane).


Ya vimos el funcionamiento de la clase Scanner. Esta clase se utiliza como método de entrada de datos por parte del usuario.

Lo primero de todo es un println con varios saltos de línea. Los saltos de línea se hacen introduciendo en la cadena de texto: "\n".

Después he puesto una variable "operacion" que almacena el valor introducido por el usuario, que posteriormente se utilizará en el switch.

En el switch le he puesto como parámetro la variable "operacion", que contiene el valor introducido por el usuario, para seleccionar si quiere sumar, restar, multiplicar o dividir.
case 1 se ejecutará con el valor 1, es decir, si el usuario ha introducido el número 1 en la consola, se cargará el código del case 1.


Es importante que pongas el break; al final de cada case, porque si no, se ejecutaría todo el código seguido independientemente de la opción escogida por el usuario, con break;, se rompe la ejecución del switch y el programa continúa fuera de este.

Dentro de cada case he creado dos variables float (para que admita decimales) y una variable más que almacene el valor de estas dos con su correspondiente operación aritmética "sumatotal" o "restatotal", etc. 
Además de esto, la variable "operacion" que utiliza el switch es de tipo int, por eso he tenido que transformar a tipo float con Float.parseFloat, para que la calculadora pueda tener números decimales.


Por último, he escrito un default (es opcional) por si el usuario se equivoca e introduce cualquier número que no sea el número 1, 2, 3 o 4 en la consola, así devuelve un error personalizado.

import java.util.Scanner;
import javax.swing.JOptionPane;
public class calculadora_switch {

 public static void main(String[] args) {
  
   Scanner introduce=new Scanner(System.in);
   
   System.out.println("Elige una opción: \n1: Sumar \n2: Restar \n3: Multiplicar \n4: Dividir");
   
   int operacion=introduce.nextInt();
   
   switch (operacion) {
      
      case 1: //Sumar
       
       float suma1=Float.parseFloat(JOptionPane.showInputDialog("Introduce el primer número a sumar"));
       
       float suma2=Float.parseFloat(JOptionPane.showInputDialog("Introduce el segundo número a sumar"));
       
       float sumatotal=suma1+suma2;
       
        System.out.println("La suma de " + suma1 + " + " + suma2 + " es igual a: " + sumatotal);
        
        break;
        
      case 2: //Restar
       
       float resta1=Float.parseFloat(JOptionPane.showInputDialog("Introduce el primer número a restar"));
       
       float resta2=Float.parseFloat(JOptionPane.showInputDialog("Introduce el segundo número a restar"));
       
       float restatotal=resta1-resta2;
       
        System.out.println("La resta de " + resta1 + " - " + resta2 + " es igual a: " + restatotal);
        
        break; 
        
      case 3: //Multiplicar
       
       float multiplicacion1=Float.parseFloat(JOptionPane.showInputDialog("Introduce el primer número a multiplicar"));
       
       float multiplicacion2=Float.parseFloat(JOptionPane.showInputDialog("Introduce el segundo número a multiplicar"));
       
       float multiplicaciontotal=multiplicacion1*multiplicacion2;
       
        System.out.println("La multiplicación de " + multiplicacion1 + " * " + multiplicacion2 + " es igual a: " + multiplicaciontotal);
        
        break;    
      
      case 4: //Dividir
       
       float division1=Float.parseFloat(JOptionPane.showInputDialog("Introduce el primer número a dividir"));
       
       float division2=Float.parseFloat(JOptionPane.showInputDialog("Introduce el segundo número a dividir"));
       
       float divisiontotal=division1/division2;
       
        System.out.println("La división de " + division1 + " entre " + division2 + " es igual a: " + divisiontotal);
        
        break; 
        
      default:
    
    System.out.println("La opción no es correcta, debes seleccionar un número del 1 al 4");  
   
   } 
  
 }

}

Resultado

Para que veas como funciona, voy a hacer una suma con esta calculadora:
Elijo la opción 1, sumar.
calculadora java

El programa me pide el primer número:

calculadora java

Me pide el segundo:
calculadora java

Finalmente, el resultado de la operación. 
Fíjate en el uno azul, ese es el número que he introducido para seleccionar la opción de suma.

calculadora java
No voy a poner las otras 3 operaciones, porque así ya os hacéis una idea. Os recomiendo que probéis la calculadora e intentéis mejorarla con lo que veremos en futuros tutoriales.

Por último, podemos ver como al introducir una opción fuera de rango como el 7, aparece el mensaje del default del switch.


java switch default

0 comentarios:

Publicar un comentario

Si te a gustado o necesitas ayuda, tus comentarios son agradecidos :D