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
tipo
“Int”
(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
tipo
“Int”
(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
tipo
“Int”
(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