La sentencia Switch nos ayuda a tomar decisiones con base en una o más condiciones, pero funciona un poco diferente:
Switch hasta Java 11:
switch(profe){case"Anahí":System.out.println("¡Profesora de Java!");break;case"Oscar":System.out.println("¡Profesor de React.js!");break;case"JuanDC":System.out.println("Oye niño, ¿qué haces aquí?");break;default:System.out.println("¡Un nuevo profe!");break;}
Switch desde Java 12:
switch(edad){case1->System.out.println("¡Tienes 1 año!");case20->System.out.println("Tienes 20 años!");default->System.out.println("Tu edad no es 1 ni 20");}
Recuerda que esta nueva sintaxis está deshabilitada por defecto, debemos hacer algunas configuraciones en nuestro IDE para que podamos utilizarla.
Excelente explicación,pero creo que sería interesante mencionar que la sentencia SWITCH solo admite los tipos de datos:
byte y Byte
short y Short
int y Integer
char y Character
String
enum
No admite:
boolean y Boolean
long y Long
float y Float
double y Double
The switch Statement
Unlike if-then and if-then-else statements, the switch statement can have a number of possible execution paths. A switch works with the byte, short, char, and int primitive data types. It also works with enumerated types (discussed in Enum Types), the String class, and a few special classes that wrap certain primitive types: Character, Byte, Short, and Integer (discussed in Numbers and Strings).
Gracias por esto!
++Resumen de condiciones en java.++
1. Condicion simple:
Este resumen era justo lo que necesitaba, gracias.
++Sentencia Switch++
.
++Condicionales:++ son la manera en la que una maquina toma decisiones a la hora de ejecutar el código.
• ++Switch:++ evalúa una expresión con una instancia.
• ++Case:++ instancia de Switch y ejecuta declaraciones si la expresión es similar o concuerda con el caso.
• ++Default:++ es ejecutada si el valor de la expresión no coincide con cualquiera de los otros casos, instancias.
.
Nota: no admite datos de tipo Boolean, Long, Float, Double
Sino recuerdo mal freddy habia dicho algo sobre no usar demasiado esta sentencia
Es un debate medio denso jaja
Es controvertido Switch, ya que algunos usuarios cuando empiezan en la programación lo pueden encontrar confuso. Al final de cuentas el programador elegiría cual es la opción (if o switch) que se le haga mas cómodo...
Por si a alguien le interesa, para quitar el tabulado cada vez que se da enter, basta con oprimir shift+tab y sha!!
Crack!
Best aporte!
que buen aporte!
útil, la foto, se evidencia lo explicado claramente
Como vengo del mundo del C++ no sabia que los switch en Java podrán usarse con valores de cadenas. Muchas gracias Anahí.
No sabia que no se podía en C++ Je
En la actualidad (2023) la nueva forma del switch ya es aceptada y se puede usar:
publicclassSwitch{publicstaticvoidmain(String[] args){ int day =1;switch(day){case1->System.out.println("Monday");case2->System.out.println("Tuesday");case3->System.out.println("Wednesday");case4->System.out.println("Thursday");case5->System.out.println("Friday");case6->System.out.println("Saturday");case7->System.out.println("Sunday");default->System.out.println("I don't know");}}}
Muy buena la clase miren mi ejemplo, quiero hacer a futuro un juego rpg
System.out.println("tienes cuatro opciones");
System.out.println();
System.out.println("Defensa, usarMagia , espadazo, escapaste");
System.out.println();System.out.println(" ingresa tu opcion");StringMovimiento;Scanner entrada =newScanner(System.in);Movimiento= entrada.nextLine();switch(Movimiento){case"defensa":System.out.println("seleccionaste defender");break;case"usarMagia":System.out.println("usaste magia");break;case"espadazo":System.out.println("le diste un espadazo");break;case"escapaste":System.out.println("acabas de escapar");break;default:System.out.println("no usaste niguna de las opciones, "+"usa alguna valida");}}
Aquí otra forma de construir el ejemplo visto en clase utilizando Java 17 y enumeraciones:
Si no pongo "break", ¿switch accede a todos los casos donde se cumpla la condición lógica? En el escenario en el que estos no sean excluyentes.
¡Hola @wdcalde! Sí, en ese caso se evaluarían todos los case y en los que la condición se cumpla este se ejecutaría. La sentencia break lo que hace es literalmente cortar la ejecución de ese código y saltar al siguiente fragmento.
Excelente, sería como el escenario de selección múltiple. Simplificaría hacer las combinaciones que evitan la exclusión de las condiciones lógicas. Muchas gracias.
Exelentes clases saludos..!!
La sentencia switch nos ayuda a tomar decisiones con base en una o más condiciones, pero funciona un poco más diferente.
Ame la clase <3 . <3
String colorModeSelected = "1";
switch(colorModeSelected){case"Light":System.out.println("Seleccione Light Mode");break;case"Night"://AmbarSystem.out.println("Seleccione Night Mode");break;case"Blue Dark":System.out.println("Seleccione Blue Dark Mode");break;case"Dark":System.out.println("Seleccione Dark Mode");break;default:System.out.println("Selecciona una opcion");
🤔 Si tienes múltiplesif, la recomendación es cambiarla por switch.
Buen punto, ya es elección del programado.
Para evitar muchas ramificaciones de if utilizar switch, de esa manera tendremos un código mas legible.
la profe hablando de modos nocturnos y yo en el linux tuve que programarle para que se cambie a modo nocturno a determinada hora xD, les recomiendo que vayan al curso de terminal y lineas de comando a todos y que se empiecen a familizar con neovim o vim <3
no se si me salte o no dio la clase de logic operations ???