Java - Parte 3
Java - Parte 3
if (expresión lógica) {
sentencia (s).
}
if-else
if (expresión lógica) {
sentencia (s) por la afirmativa.
} else {
sentencia (s) por la negativa.
}
Ejemplo - if
Si x es mayor o igual a seis imprimir "Aprobado".
if (x >= 6) {
System.out.println("Aprobado");
}
Ejemplos - if-else
Si x es mayor o igual a seis imprimir "Aprobado", sino imprimir
"Desaprobado".
if (x >= 6) {
System.out.println("Aprobado");
} else {
System.out.println("Desaprobado");
}
Codicionales - switch
Una sentencia switch ejecuta sentencias basadas en el valor de
una variable o una expresión.
switch (expresión) {
case valor1: expresión (es);
break;
case valor2: expresión (es);
break;
...
case valorN: expresión (es);
break;
default: expresión (es) por defecto.
}
Condicionales - switch
La expresión a evaluar puede ser de tipo char , byte , short , int
o String .
Valor1, valor2, ..., valorN tiene que ser del mismo tipo de datos y
deben ser constantes
NO PUEDEN CONTENER VARIABLES.
Funcionamiento similar a C.
default es opcional.
Condicionales - switch
Cambios en switch desde Java 12.
Permite:
usarlo como expresión o sentencia.
retornar valores de una sentencia switch .
usar varias etiquetas en un case .
Ejemplo
Si el día es entre 1 y 5 imprimir "Día de la semana".
Si es 6 o 7 imprimir "Fin de semana".
Sino "Error".
switch clásico
switch (x) {
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("Día de la semana");
break;
case 6:
case 7:
System.out.println("Fin de Semana");
break;
default:
System.out.println("Error");
break;
}
switch con varias etiquetas en un case
switch (x) {
case 1, 2, 3, 4, 5:
System.out.println("Día de la semana");
break;
case 6, 7:
System.out.println("Fin de Semana");
break;
default:
System.out.println("Error");
break;
}
switch usando el formato: case L -> expresión;
switch (x) {
case 1, 2, 3, 4, 5 -> System.out.println("Día de la semana");
case 6, 7 -> System.out.println("Fin de Semana");
default -> System.out.println("Error");
}
Retornando valores de un switch
Si el valor es 1 retornar 2.
Si el valor es 2 retornar 4.
Si el valor es 3 retornar 9.
Sino retornar 1.
Retornando valores de un switch
int y = switch (x) {
case 1 -> 2;
case 2 -> 4;
case 3 -> 9;
default -> 1;
};
Retornando valores de un switch
int y = switch (x) {
case 1:
break 2;
case 2:
break 4;
case 3:
break 9;
default:
break 1;
};
Condicionales - expresión condicional
Una expresión condicional evalúa una expresión basado en una
condición.
int valor = 0;
while (valor <= 10) {
System.out.println(valor + " * 2 = " + valor * 2);
valor++;
}
Bucles - do-while
Un bucle do-while es el mismo que un bucle while excepto que se
ejecuta el cuerpo del bucle primero y luego se comprueba la
condición de continuidad del bucle.
do {
// cuerpo del bucle
sentencias (s).
} while (expresión lógica);
Ejemplo - do-while
Solicitar una cadena de caracteres, imprimir la misma en
mayúsculas, terminar cuando se ingrese la cadena "".
REPL????
Es un entorno de programación simple e interactivo que toma la
entrada del usuario (Read), ejecuta el comando del usuario
(Eval), devuelve el resultado al usuario (Print) y espera la
siguiente entrada del usuario (Loop).
Uso?
Problema: incluso para imprimir una sola declaración en la
consola, era absolutamente necesario tener al menos una clase y
el método principal.
$ jshell
Ejemplo:
jshell> mensaje.toUpperCase()
$2 ==> "HOLA MUNDO"
jshell> System.out.println($2)
HOLA MUNDO
jshell> $2
$2 ==> "HOLA MUNDO"
Manejo de errores
Si el comando proporcionado por el usuario tiene algún error,
JShell detecta el error y devuelve un mensaje de error con un
formato agradable al usuario.
Ejemplo:
jshell> mensaje.substring(10,12)
| Exception java.lang.StringIndexOutOfBoundsException: begin 10, end 12, length 10
| at String.checkBoundsBeginEnd (String.java:3319)
| at String.substring (String.java:1874)
| at (#4:1)
Paquetes por Defecto
Por defecto importa los paquetes más utilizados y uno puede
usarlos directamente en los comandos.
jshell> /imports
| import java.io.*
| import java.math.*
| import java.net.*
| import java.nio.file.*
| import java.util.*
| import java.util.concurrent.*
| import java.util.function.*
| import java.util.prefs.*
| import java.util.regex.*
| import java.util.stream.*
Otra Funcionalidades
Es posible crear clases y métodos.
Comandos:
/edit permite editar nuestro código.
/help permite obtener ayuda.
/list muestra todos los comandos escritos en la sesión.
Puede tomar un argumento --all para proporcionar los
comandos de la sesión actual y anteriores.
/history muestra todos los comandos escritos (incluso los
internos).
Otra Funcionalidades
También permite examinar la lista de: variables, métodos y tipos
que se han utilizado previamente en el shell.
Ejemplos:
jshell> /vars
| String mensaje = "Hola Mundo"
| int $2 = 10
| String $3 = "o"
| String $4 = null
jshell> /methods
jshell> /types
Gracias