SEMANA 6
7.4. Switch
La sentencia switch se encarga de estructurar una selección múltiple. Al contrario del
enunciado if-else que sólo podemos indicar dos alternativas, maneja un número finito de
posibilidades. La estructura general del enunciado switch es la siguiente:
switch( expresión ) {
case constante1:
sentencia1;
...
break;
...
case constanteN:
sentenciaN;
...
break;
default:
sentencia;
...
break
}
El valor de la expresión y de las constantes tiene que ser de tipo String, char, byte, short o
int. No hay lugar para booleanos, reales ni long porque, en la ejecución, todos los valores
que incorporamos se transforman en valores de tipo int.
Al evaluar la expresión de switch, el intérprete busca una constante con el mismo valor. Si
la encuentra, ejecuta las sentencias asociadas a esta constante hasta que tropiece con un
break. La sentencia break finaliza la ejecución de esta estructura. Si no encuentra ninguna
constante que coincida con la expresión, busca la línea default. Si existe, ejecuta las
sentencias que le siguen. La sentencia default es opcional.
Ejemplo:
Vamos a elaborar una aplicación donde nos solicite el ingreso de un numero en el rango de
1-5, luego nos muestre el texto literal del número ingresado; si se ingresa un valor fuera de
rango, debe mostrar un mensaje de error.
56
Manual de Programación Java
Resultado:
57
Manual de Programación Java
Resultado:
Podemos observar que sólo se ha evaluado el case 2, y como no tiene la instrucción break,
se ejecuta todo los case que siguen.
Ejercicio:
Elaborar una aplicación que solicite ingresar dos numeros, luego debe preguntar que
operación desea realizar, debiendo ingresar: “+”, “-”, “*” o ”/”. Finalmente debe mostrar el
resultado de la operación seleccionada.
El método nextLine() extrae del buffer de entrada
todos los caracteres hasta llegar a un intro y
elimina el intro del buffer.
En este caso asigna una cadena vacía a la
variable nombre y limpia el intro. Esto provoca
que el programa no funcione correctamente, ya
que no se detiene para que se introduzca el
nombre.
Solución:
Se debe limpiar el buffer de entrada si se van a
leer datos de tipo carácter a continuación de la
lectura de datos numéricos.
La forma más sencilla de limpiar el buffer de
entrada en Java es ejecutar la instrucción:
sc.nextLine();
Resultado:
58
Manual de Programación Java
Reto de la sesión
Elaborar Una aplicación basada en jFrame en la que nos permita seleccionar productos de una lista
y agregarla a una nueva lista. De acuerdo al producto seleccionado se debe asignar un precio. En
una caja de texto se debe mostrar el precio total y debe ir incrementandose de acuerdo al
producto seleccionado en cada operación de selección. Emplear switch.
Vista diseño:
jButton
jCombo Box
jList
jText Field
Vista ejecución:
Para trabajar con la lista se debe crear un objeto de tipo DefaultListModel, luego este modelo
asignar a nuestro objeto jList.
DefaultListModel modelo= new DefaultListModel(); //Creamos un objeto modelo del tipo DefaultListModel.
modelo.addElement(producto +" "+ precio); //Agregamos elementos al modelo.
jLstListaProd.setModel(modelo); //Asignamos el modelo a nuestro jLstListaProd.
59
Manual de Programación Java
SEMANA 07.
60
Manual de Programación Java
Resultado:
Ejercicio:
Crear una aplicación que muestre la tabla de multiplicar del número ingresado. Así:
61
Manual de Programación Java
El bucle while.
Un bucle while es una estructura de control que le permite repetir una tarea un
número determinado de veces.
Aquí, el punto clave del bucle while es que el bucle no podría nunca funcionar. Cuando
la expresión es probada y el resultado fuera falso, el cuerpo del bucle se omitirá y se
ejecutará la primera sentencia después del bucle while.
Ejemplo:
Resultado:
Ejercicio:
Elaborar una aplicación que solicite el ingrese un numero positivo luego muestre los
numeros pares hasta el numero ingresado. Así:
62
Manual de Programación Java
El bucle do…while.
Un bucle do ... while es similar a un bucle while, excepto que un bucle do ... while se
ejecutaal menos una vez.
La sintaxis del bucle while es:
do
{
//Statements
}while(Boolean_expression);
Observa que la expresión booleana aparece al final del bucle, por lo que las
instrucciones del bucle while ha sido ejecutado una vez antes de que la expresion
boolena haya sido evaluada.
Si la expresión booleana es verdadera, el control del flujo se incrementa, y las
instrucciones del bucle se vuelven a ejecutar. Este proceso se repite hasta que la
expresión booleana sea falsa.
Ejemplo:
Resultado:
63
Manual de Programación Java
Ejercicio:
Elaborar un programa donde se puedan leer numeros desde un valor mayor ingresado
hasta que llegue a cero. El resultado es la suma de todos los números leídos. Así:
Reto de la sesión
Elaborar una aplicación basada en jFrame, donde se muestre la tabla de multiplicar con for, los
numeros pares con while y el valor acumulado de los números desde un número ingresado hasta
0.
Al ejecutar…
64