lunes, 26 de marzo de 2012

Sentencia de Control Switch

Buenas amigos, en este tema veremos una nueva secuencia condicional, el SWITCH. Este tipo de sentencia es para múltiples condiciones, lo cual nos permite una mayor agilidad para un número elevado de condiciones.



El formato que tiene es el siguiente:

        • switch(expresión){

        • case 1:
        • ....expresión1.....
        • break;

        • case 2:
        • .....expresión2....
        • break;

        • ............
        • case N:
        • .......expresiónN.....
        • break;

        • default:
        • .....expresión default.....
        • }
El funcionamiento de esta sentencia es el siguiente:
  • En primer lugar se evalúa la expresión del SWITCH.
  • Posteriormente la sentencia empezará a ejecutar desde el CASE con el que coincida la expresión. Se ejecutarán todas las instrucciones hasta llegar a una sentencia BREAK, o se llegue al final de la sentencia.
  • Si no se encuentra ninguna sentencia CASE cuyo valor coincida con la expresión del SWITCH, se ejecutará la sentencia DEFAULT
  • La expresión del SWITCH debe ir entre paréntesis para distinguirlo del resto del código.
  • Las expresiones CASE no deben ir entre paréntesis, pero deben terminar en dos puntos ":"
Pongamos un ejemplo, introducir un número por consola y que diga el día de la semana, si el número introducido no pertenece a ningún día de la semana, mostrar un mensaje indicándolo:


Importamos la clase Scanner de la librería java.util
          • import java.util.Scanner;
Creamos dentro de la main un objeto de la clase Scanner llamado teclado:
          • Scanner teclado=new Scanner(System.in);
Creamos una variable de tipo entera llamada numSemana:
          • int numSemana;
Pedimos un número por teclado y lo almacenamos en la variable numSemana:
        • System.out.println("Introduzca un número de día de la semana:");
        • numSemana=teclado.nextInt();
Posteriormente creamos la sentencia SWITCH:
        • switch(numSemana){

        • case 1:
        • System.out.print("Lunes");
        • break;

        • case 2:
        • System.out.print("Martes");
        • break;

        • case 3:
        • System.out.print("Miércoles");
        • break;

        • case 4:
        • System.out.print("Jueves");
        • break;

        • case 5:
        • System.out.print("Viernes");
        • break;

        • case 6:
        • System.out.print("Sábado"); 
        • break;

        • case 7:
        • System.out.print("Domingo");
        • break;

        • default:
        • System.out.print("Día de la semana no válido");

        •  
Bien, comenzamos el SWITCH indicándole su expresión, en este caso los números de los días de la semana que tenemos almacenado en nuestra variable numSemana. Posteriormente compara la expresión con los diferentes CASE que tenemos, si alguno coincide con el valor de numSemana, realizará la instrucción que convenga en ese momento. Por ejemplo, si introducimos por teclado el número 4, numSemana valdrá 4, cuando el SWITCH se ejecute, buscará un CASE donde ponga 4 y realizará la instrucción que contenga, si en vez de 4 introducimos 14, el SWITCH buscará entre todos los CASE una coincidencia, y al no encontrarla, pasará al DEFAULT, realizará su instrucción, y finalizará la sentencia.

La sentencia BREAK se utiliza para que termine de ejecutarse el SWITCH, si no pusiéramos la sentencia BREAK, se ejecutarían todos los CASE que hubiese desde el que se vaya a ejecutar hasta el final. Así, si no pusiésemos ningún BREAK, y eligiéramos el número 1, se nos imprimiría LUNES, pero al no tener una sentencia BREAK, se imprimirían el resto de sentencias CASE hasta que encuentre un BREAK o termine de ejecutarse todo.

En el siguiente tema veremos como se utiliza la Sentencia BREAK y la Sentencia CONTINUE.

Un saludo.

No hay comentarios:

Publicar un comentario