Java Snippet – Menús en consola con switch/case

Con la estructura switch/case podemos indicar a nuestro programa que realice diferentes acciones en función del valor que tome una variable dada. Lo veremos mucho más claro con el siguiente ejemplo.

Qué hará nuestra aplicación

Esta aplicación está basada en un ejercicio que hicimos en primer curso. Simula las operaciones que se pueden realizar en un banco, como abrir o eliminar una cuenta, ingresar o reintegrar dinero, etc… Aunque para clase utilicé una interfaz gráfica en Swing, en este caso me interesa presentarlo todo por consola, para mostrar claramente el funcionamiento del menú usando switch/case. Además, he empleado ArrayLists e Iteradores, de los que ya hablé anteriormente..

Cuando se ejecute la aplicación, el menú será el siguiente:


He estructurado el programa en 2 clases:

  • Cuenta: Esta clase contiene los atributos (titular, id, saldo) y métodos (setters y getters) de una cuenta bancaria.
  • Banco: Esta clase muestra el menú de opciones y ejecuta las acciones.

Para no hacer el post demasiado extenso no voy a incluir el código completo, sino que he preferido colgarlo en mi cuenta de github. Puedes dirigirte a este enlace o clonar el repositorio directamente con el comando:

Objetos necesarios

En la clase Banco he creado los siguientes objetos, a los que voy a acceder desde diferentes puntos del programa:

La función mostrarMenu()

Esta función simplemente muestra por pantalla cada una de las opciones del menú. El usuario introducirá un string que luego pasaremos como parámetro al llamar a la función ejecutarAccion(). En lugar de un string puedes forzar a que el usuario introduzca un entero, por ejemplo, pero un string te da más versatilidad. En este caso, por ejemplo, para salir del programa espero a que el usuario introduzca una “X“.

Como ves, el valor que introduce el usuario lo guardo en el string “opcion” usando el método .next() del objeto Scanner (sc) creado justo al principio del programa. Como veremos después, el objeto sc lo cerraremos cuando el usuario elija la opción “X. Salir“.

La función ejecutarAccion(String accion)

Esta función recibe como parámetro la opción introducida por el usuario anteriormente. Lo primero que hago es convertir esta cadena a mayúsculas (si introduce cualquier otro caracter no se produce ningún error). A continuación, usando la cláusula switch/case especifico qué debe ejecutarse en cada caso.

La sintaxis de esta cláusula es la siguiente:

Creo que queda bastante claro. Dependiendo del valor que tome la variable “opcion” se ejecutará la acción correspondiente a ese valor. Si “opcion” toma un valor no contemplado, se ejecutarán las acciones dentro del bloque “default“. El comando “break” interrumpe la ejecución del bloque switch.

Como ves en mi código, dentro de cada opción llamo a la función correspondiente, y después vuelvo a mostrar el menú. Excepto cuando el usuario decide salir introduciendo una “X“, en cuyo caso cierro el objeto sc antes de salir.

Los comentarios están cerrados.