jueves, 23 de agosto de 2012

Capitulo 5. INSTRUCION “switch” .


La sentencia “switch” es una alternativa a “if-else” cuando necesitáramos un “if-else “ dentro de otro, como veremos en el segundo ejemplo. Con la diferencia que la expresión o variable contenida entre paréntesis debe ser contable y no de tipo boolean. Su estructura es la siguiente:
switch (expresion) {
case 1:
statements1;
break;
case 2:
statements2;
break;
case 3:
statements3;
case 4:
statements4;
break;
default:
statements5;
break;
}

Sus características son:
  • La expresión o variable dentro del paréntesis debe ser de tipo contable.
  • Cada sentencia case es un valor o expresión único, no puede haber rangos ni condiciones.
  • Los valores no comprendidos en ninguna sentencia “case” se pueden gestionar desde la sentencia default.
  • Si no ponemos break al final de la sentencia “case” se ejecutarían todas las sentencias que fueran a continuación hasta llegar a un break o al final del bloque de “switch”

Aqui os dejo el vídeo tutorial de este capitulo:





Y los ejemplos con anotaciones.

EJEMPLO 1:
package org.cervinomix.tutorial6;

import java.util.Scanner;

public class Tutorial60 {
public static void main (String [] arg) {
Scanner numero = new Scanner(System.in);

System.out.println ("Menú de opciones:");
// Imprime el menú
System.out.println ("1- Sumar dos números (x+y)");
System.out.println ("2- Restar dos números (x-y)");
System.out.println ();
// Deja una linea vacía.
System.out.print ("Ingresar opción:");
int opcion = numero.nextInt();
/* "numero.next.Int()" dice que se para la ejecución del programa
* y espera hasta que le ingresemos un numero de tipo Int (entero)
* y le demos a entero y se guarda en la variable “opción
* ingresamos la opción (numero) con la operación matemática que
* queremos hacer.*/
System.out.print ("Ingresar primer numero:");
int x = numero.nextInt();
/* Numero.next.Int() dice que se para la ejecución del
* programa y espera hasta que le ingresemos un primer numero de
* tipo Int (entero) y le demos a enter y se guarda en
* la variable “x” */
System.out.print ("ingresar segundo numero:");
int y = numero.nextInt();
/* Numero.next.Int() dice que se para la ejecución del
* programa y espera hasta que le ingresemos un segundo numero de
* tipo Int (entero) y le demos a enter. Se guarda en
* la variable “y” */

int resultado;
//definimos la variable resultado como tipoInt” (números enteros) que estará de momento vacía
// hasta que le demos el valor al final del programa.






if (opcion == 1) {
// El doble igual “==” significa igual y el símbolo igual simple“=” significa asignación.
// Si la variable “opción” es igual a 1 hace la siguiente sentencia que suma x e y (x+y).
resultado = x+y;
} else {
// Sino vale 1 se ejecuta la siguiente sentencia que resta x menos y (x-y).
resultado = x-y;
}
System.out.print ("Mostrar resultado:");
// Muestra lo escrito entre “” , pero no pasa a la siguiente línea el
//cursor se queda justo a la derecha de “Mostrar resultado:”, esto se
// debe a que usamos print y no println que imprime y pasa a la línea
// siguiente.
System.out.print (resultado);
// Imprime el valor de la variable “resultado”
}
}




EJEMPLO 2:


package org.cervinomix.tutorial6;

import java.util.Scanner;

public class Tutorial61 {
public static void main (String [] arg) {
Scanner numero = new Scanner(System.in);

System.out.println ("Menú de opciones:");
// Imprime el menú
System.out.println ("1- Sumar dos números (x+y)");
System.out.println ("2- Restar dos números (x-y)");
System.out.println ("3- Multiplicar dos números (x*y)");
System.out.println ("4- Dividir dos números (x/y)");
System.out.println ();
// Deja una línea vacía.
System.out.print ("Ingresar opción:");
int opcion = numero.nextInt();
// numero.next.Int() dice que se para la ejecución del programa y espera hasta que le ingresemos
// un numero de tipo Int (entero) y le demos a entero y se guarda en la variable “opción
// ingresamos la opción (numero) con la operación matemática que queremos hacer.
System.out.print ("Ingresar primer numero:");
int x = numero.nextInt();
// numero.next.Int() dice que se para la ejecución del programa y espera hasta que le ingresemos
// un numero de tipo Int (entero) y le demos a entero y se guarda en la variable “x”
//ingresamos el numero “x”.
System.out.print ("ingresar segundo numero:");
int y = numero.nextInt();
// numero.next.Int() dice que se para la ejecución del programa y espera hasta que le ingresemos
// un numero de tipo Int (entero) y le demos a entero y se guarda en la variable “x”
//ingresamos el numero “y”.
int resultado;
//definimos la variable resultado como tipoInt” (números enteros) que estará de momento vacía
// hasta que le demos el valor al final del programa.


if (opcion == 1) {
//si la variable “opción” tiene el valor 1 se hace la siguiente sentencia que suma x+y.
resultado = x+y;
} else {
//sino hace lo siguiente.
if (opcion == 2){
//si la variable “opción” tiene el valor 2 se realiza la siguiente sentencia que resta x-y.
resultado = x-y;
} else {
// Sino hace lo siguiente.
if (opcion == 3){
// Si la variable “opción” tiene el valor 3 se realiza la siguiente sentencia que multiplica x*y;
resultado = x*y;
} else {
// Sino tiene la variable “opción” no tiene el valor 1,2 o 3 hace la siguiente sentencia que
// divide x/y.
resultado = x/y;
}
}
}
System.out.print ("Mostrar resultado:");
// Muestra el resultado sin salto de línea
System.out.print (resultado);
}
}






EJEMPLO 3:
package org.cervinomix.tutorial6;

import java.util.Scanner;

public class Tutorial62 {
public static void main (String [] arg) {
Scanner numero = new Scanner(System.in);

System.out.println ("Menú de opciones:");
// Imprime el menú
System.out.println ("1- Sumar dos números (x+y)");
System.out.println ("2- Restar dos números (x-y)");
System.out.println ("3- Multiplicar dos números (x*y)");
System.out.println ("4- Dividir dos números (x/y)");
System.out.println ();
// Deja una línea vacía.
System.out.print ("Ingresar opcion:");
int opcion = numero.nextInt();
// numero.next.Int() dice que se para la ejecución del programa y espera hasta que le ingresemos
// un numero de tipo Int (entero) y le demos a entero y se guarda en la variable “opción
// ingresamos la opción (numero) con la operación matemática que queremos hacer.
System.out.print ("Ingresar primer numero:");
int x = numero.nextInt();
// numero.next.Int() dice que se para la ejecución del programa y espera hasta que le ingresemos
// un numero de tipo Int (entero) y le demos a entero y se guarda en la variable “x”
//ingresamos el numero “x”.
System.out.print ("ingresar segundo numero:");
int y = numero.nextInt();
// numero.next.Int() dice que se para la ejecución del programa y espera hasta que le ingresemos
// un numero de tipo Int (entero) y le demos a entero y se guarda en la variable “x”
//ingresamos el numero “y”.
int resultado = 0;
int resultado = 0;
/*definimos la variable resultado como tipoInt” (números enteros)
* y la inicializamos con el valor 0 porque en la opción default dentro
* de "switch" no se le da ningun valor, con lo cual al ejecutar la
* ultima sentencia:
*
* System.out.print(resultado);
*
* Daria error si no la inicializamos con un valor al imprimirla
* ya que no tiene valor asignado. */

//EDITAMOS TODO LOS “if-else” DEL EJEMPLO 2 PARA COMPARAR CON “switch”
/* if (opcion == 1) {
//si la variable “opción” tiene el valor 1 se hace la siguiente sentencia que suma x+y.
resultado = x+y;
} else {
//sino hace lo siguiente.
if (opcion == 2){
//si la variable “opción” tiene el valor 2 se realiza la siguiente sentencia que resta x-y.
resultado = x-y;
} else {
// Sino hace lo siguiente.
if (opcion == 3){
// Si la variable “opción” tiene el valor 3 se realiza la siguiente sentencia que multiplica x*y;
resultado = x*y;
} else {
// Sino tiene la variable “opción” no tiene el valor 1,2 o 3 hace la siguiente sentencia que
// divide x/y.
resultado = x/y;
}
}
} */


switch (opcion) {
/* "switch" es como si fuera un "if" pero en vez de utilizar
* una expresión de tipo boolean la expresión o variable debe tener
* un resultado de tipo contable*/
case 1:
/* En caso de que opcion sea igual a 1 se ejecuta lo siguiente */
resultado = x+y;
break;
case 2:
/* En caso de que opcion sea igual a 2 se ejecuta lo siguiente */
resultado = x-y;
break;
case 3:
/* En caso de que opcion sea igual a 3 se ejecuta lo siguiente */
resultado = x*y;
case 4:
/* En caso de que opcion sea igual a 4 se ejecuta lo siguiente */
resultado = x/y;
break;
default:
/* Si no es ninguna de las opciones anteriores se ejecutara
* lo siguiente. */
System.out.println ("Error al elegir la opcion.");
break;
}
System.out.print ("Mostrar resultado:");
System.out.print(resultado);
}
}

No hay comentarios:

Publicar un comentario