Uso del "switch" y del "if and else"

  Como siempre antes de cada ejemplo doy una explicación breve y sencilla de cómo usar el código que se utilizara en ejemplos en Java, esta entrada va a ser algo distinta a las anteriores, ya que se explica como mostrar al usuario una selección de opciones, y muestra como ir de un método a otro para usar dichas opciones.

  Comenzaremos por utilizar los casos de "Si, entonces" y "De lo contrario" para manejar distintas opciones dentro de nuestro código, es decir que vamos a comenzar a manejar opciones de selección simple o múltiple para el usuario

  Para comenzar con todo esto primero debemos saber que significa "if and else", y no es mas que decir en inglés "Si y Entonces”. Para utilizar esta sentencia el código es el siguiente:

if (acción)
{ \\Instrucciones }
else
{ \\Instrucciones }

  Hay que aclarar que al momento de usar “if and else”, si tenemos una sola instrucción no es necesario colocar las llaves para indicar el principio y fin de esta condición, pero igualmente pueden ir dentro del código. Para aclarar más esta parte, si solo utilizamos una instrucción seria conveniente colocarla de esta manera:

if (acción)
  Instrucción
else
  Instrucción
  Esto lo podemos aplicar a preguntas simples y complejas, como por ejemplo: “Diga cuanto es 2+2”, si (variable = 4), Mostrar “Muy Bien”, de lo contrario, Mostrar “Incorrecto, la respuesta es 4”.

  Es importante saber que estas condiciones en Java tienen su propia sintaxis, la forma de escribir los operadores cambia, es decir:

Operador                      Significado                 Sintaxis

       =                              Igual que                     ==
  (desigual)                    Distinto de                     !=

       >                             Mayor que                      >
       <                             Menor que                      <

       ≥                        Mayor o igual que                >=

       ≤                        Menor o igual que                <=

    Ahora vamos con los métodos y como llamarlos desde el método principal, una clase puede tener un sin fin de métodos, cada uno con un nombre propio y tipo de uso, por los momentos usaremos de uso simple y nos ira muy bien ya que es lo que mas se suele usar. Es como crear un método principal, a diferencia que no lleva los argumentos en su nombre, es decir que al momento de cerrar el método principal, no cerramos la clase y colocamos un nombre para el método seguido de dos paréntesis, luego colocamos entre llaves el resto del código. Para llamar a dicho método, colocamos el nombre del método que hemos creado en el momento de selección.
    Para que este más claro, seria así:
class prueba {
  public static void main (String [] args) {
    //Resto del código    
    prueba();  
  }
  void prueba() {
    //Resto del código  
  }
}
    También podemos llamar a otros métodos desde otro método que no sea el principal y se hace de la misma manera, o podemos llamar al principal otra vez, sabien que el método principal se llama “main”, solo colocamos, en donde queremos invocar al método: main (null). Para llamar a un método seleccionado desde un menú de opciones, podemos utilizar el “switch”, que significa cambio en inglés. El “switch” debe usar una variable del tipo numérico o del tipo “char”, entero es lo mas práctico. El “switch” se usa para saltar de un método a otro en caso de que un evento ocurra. Luego debe ir un “break”, indicando que ese método se detiene y comienza el otro.  
    Este se maneja por casos y usa un “default”, en donde se indica que instrucción seguir en caso de que el usuario ingrese una opción no válida. Su sintaxis es la siguiente:
    switch (variable)
{
case 1:\\Instrucción o Método; break;
case 2:\\Instrucción o Método; break;
case 3:\\Instrucción o Método; break;
default:\\Instrucción o Método; break;
}
    Para mostrar al usuario el menú de opciones que puede seleccionar, usando lo que hasta ahora se ha publicado, podemos hacer lo siguiente:
    Al momento de mostrar el diálogo de entrada (showInputDialog), le indicamos que van a estar varios elementos en el texto, pero cada uno en una línea distinta, esto lo hacemos usando el operador “+” y colocando antes de comenzar el texto “\n”. El “\n” indica al programa que lo que esta a continuación de él va en otra línea. Seria asi:
  JOptionPane.showInputDialog(“\nOpción 1”+”\nOpción 2”+”\nOpción 3”)  
   Dicho ya todo esto, pasemos a un ejemplo en el que aplicamos todo esto y lo que se ha publicado en las entradas anteriores.
import java.io.*;
import javax.swing.*;

class Prueba
{
public static void main (String [] args) throws IOException
{
try
{
int opcion;
opcion= Integer.parseInt(JOptionPane.showInputDialog(null, "OPCIONES"+
"\n1. SUMAR"+"\n2. RESTAR"+"\n3. MULTIPLICAR"+"\n4. DIVIDIR"+
"\n5. OBTENER EL MENOR VALOR"+"\n6. OBTENER EL MAYOR VALOR"+"
\n7. OBTERNER EL VALOR INTERMEDIO"+"\n8. SALIR DEL PROGRAMA"+
"\nEscoja su opción: ","Opciones", JOptionPane.QUESTION_MESSAGE));
switch (opcion)
{
case 1:suma();break;
case 2:resta();break;
case 3:multiplicacion();break;
case 4:division();break;
case 5:mayor();break;
case 6:menor();break;
case 7:medio();break;
case 8:System.exit(0);break;
default:JOptionPane.showMessageDialog(null,"Opcion no vá¡lida","Error",JOptionPane.ERROR_MESSAGE);main(null);
}
}

catch(Exception exp)
{
JOptionPane.showMessageDialog(null,"Ocurrio un error durante el proceso,"+
"\nPude ser debido al mal ingreso de datos");
int opcion= Integer.parseInt(JOptionPane.showInputDialog(null, "OPCIONES"+
"\n1. VOLVER AL MENU PRINCIPAL"+"\n2. SALIR DEL PROGRAMA"+
"\nEscoja su opción: ", "Opciones", JOptionPane.QUESTION_MESSAGE));
switch (opcion)
{
case 1:main(null);break;
case 2:System.exit(0);break;
default:JOptionPane.showMessageDialog(null,"Opcion no vá¡lida","Error",JOptionPane.ERROR_MESSAGE);break;
}
}
}//Fin del método principal

public static void suma() throws IOException
{
int numero1,numero2,resultado;
numero1= Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el primer valor","Suma", JOptionPane.PLAIN_MESSAGE));
numero2= Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el primer segundo","Suma", JOptionPane.PLAIN_MESSAGE));
resultado=numero1+numero2;
JOptionPane.showMessageDialog(null,"El resultado es: "+resultado,
"Resultado",JOptionPane.INFORMATION_MESSAGE);
main(null);
}

public static void resta() throws IOException
{
int numero1,numero2,resultado;
numero1= Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el primer valor","Resta", JOptionPane.PLAIN_MESSAGE));
numero2= Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el primer segundo","Resta", JOptionPane.PLAIN_MESSAGE));
resultado=numero1-numero2;
JOptionPane.showMessageDialog(null,"El resultado es: "+resultado,
"Resultado",JOptionPane.INFORMATION_MESSAGE);
main(null);
}

public static void multiplicacion() throws IOException
{
int numero1,numero2,resultado;
numero1= Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el primer valor","Multiplicacion",
JOptionPane.PLAIN_MESSAGE));
numero2= Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el primer segundo","Multiplicacion",
JOptionPane.PLAIN_MESSAGE));
resultado=numero1*numero2;
JOptionPane.showMessageDialog(null,"El resultado es: "+resultado,
"Resultado",JOptionPane.INFORMATION_MESSAGE);
main(null);
}

public static void division() throws IOException
{
int numero1,numero2,resultado;
numero1= Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el primer valor","Division",
JOptionPane.PLAIN_MESSAGE));
numero2= Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el primer segundo","Division",
JOptionPane.PLAIN_MESSAGE));
resultado=numero1/numero2;
JOptionPane.showMessageDialog(null,"El resultado es: "+resultado,
"Resultado",JOptionPane.INFORMATION_MESSAGE);
main(null);
}

public static void mayor() throws IOException
{
int numero1,numero2;
numero1= Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el primer valor","Mayor", JOptionPane.PLAIN_MESSAGE));
numero2= Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el primer segundo","Mayor", JOptionPane.PLAIN_MESSAGE));
if (numero1>numero2)
JOptionPane.showMessageDialog(null,"El mayor es: "+numero1,"Resultado",
JOptionPane.INFORMATION_MESSAGE);
else
JOptionPane.showMessageDialog(null,"El mayor es: "+numero2,"Resultado",
JOptionPane.INFORMATION_MESSAGE);
main(null);
}

public static void menor() throws IOException
{
int numero1,numero2;
numero1= Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el primer valor","Menor", JOptionPane.PLAIN_MESSAGE));
numero2= Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el segundo","Menor", JOptionPane.PLAIN_MESSAGE));
if (numero1numero2) && (numero2>numero3))
JOptionPane.showMessageDialog(null,"El valor intermedio es: "+numero2,"Resultado",
JOptionPane.INFORMATION_MESSAGE);
else if ((numero2>numero1) && (numero1>numero3))
JOptionPane.showMessageDialog(null,"El valor intermedio es: "+numero1,"Resultado",
JOptionPane.INFORMATION_MESSAGE);
else
JOptionPane.showMessageDialog(null,"El valor intermedio es: "+numero3,"Resultado",
JOptionPane.INFORMATION_MESSAGE);
main(null);
}
}//Fin de la clase
    Si compilamos y ejecutamos, vemos que hay una especie de menú de selección aplicando los diálogos que hemos utilizado en programas anteriores. También hay que decir que el botón cancelar no funciona y lo toma como una opción no válida, ya que no se define en el código una acción para dicho botón.

    Este programa explica de forma clara y sencilla el uso de “if and else” y el uso del “switch”. Si estudiamos mejor el código vemos que solo hay un “try and catch”, pero no hay problema, ya que como esta en el método principal y no en otra clase, al generarse un error ira hacia el “catch” del “main”.
    También notamos que al final de cada método se invoca o se llama al método principal, esto es para que al finalizar el método, no salga del programa y pregunte de nuevo que desea hacer el usuario.


Lamentablemente hay muchos usuarios en la red que han llegado al blog para escribir obscenidades, así que la moderación se hace necesaria. Recuerda utilizar un lenguaje correcto y espera a que sea aprobado.

Si necesitas publicar código haz click en "Conversión" para hacerlo legible.
ConversiónConversión