Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso de Introducción a Java SE

Curso de Introducción a Java SE

Anahí Salgado Díaz de la Vega

Anahí Salgado Díaz de la Vega

Sentencia Switch

25/39
Recursos

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) {
  case 1 -> System.out.println("¡Tienes 1 año!");
  case 20 -> 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.

Aportes 73

Preguntas 14

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

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

Resumen de condiciones en java.
1. Condicion simple:

if(condicion){
	instrucciones
}

2. Condicion doble

if(condicion){
	instrucciones
}else{
	instrucciones
}

3. Condicion multiple:
a) Con if’s

if(condicion1){
	instrucciones
}else if(condicion2){
	instrucciones
}else if(condicion3){
	instrucciones
}else{
	instrucciones
}

b)Con switch

switch (variable) {
	case caso1:
    		instrucciones
    		break;
	case caso2:
    		instrucciones
    		break;
  	case caso3:
    		instrucciones
    		break;
  	default:
    		instrucciones
    		break;
}

4. Operador trernario

resultado = (condicion) ? valor1:valor2;

Sino recuerdo mal freddy habia dicho algo sobre no usar demasiado esta sentencia

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

Como vengo del mundo del C++ no sabia que los switch en Java podrán usarse con valores de cadenas. Muchas gracias Anahí.

Por si a alguien le interesa, para quitar el tabulado cada vez que se da enter, basta con oprimir shift+tab y sha!!

Sintaxis

switch(expression) {
  case x:
    // code block
    break;
  case y:
    // code block
    break;
  default:
    // code block
}```

Ame la clase ❤️ . ❤️
String colorModeSelected = “1”;

    switch (colorModeSelected){
        case "Light":

            System.out.println("Seleccione Light Mode");
            break;
        case "Night": //Ambar
            System.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últiples if, la recomendación es cambiarla por switch.

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 ❤️

Excelente clase anahí… pero me pregunto en el caso que quiera seleccionar la fecha de nacimiento de alguien, (solo programo assembler y KOP) tendré muchos datos, osea muchos “case”, lo que hará muy largo el código, alguien me puede ayudar a como se puede comprimir para hacerlo mas compacto?.. Muchas gracias Anahí.

El código es más legible si utilizamos switch en vez de if anidados 💚

Soy del futuro, y ya no hay que configurar nada.

public class SentenciaSwitch {
    public static void main(String[] args) {
        
        String color = " Dark".toLowerCase();


        switch (color) {
            case "dark":
                System.out.println("Seleccionaste la version Dark");
                break;
            case "blue dark":
                System.out.println("Seleccionaste las version Blue dark");
                break;
            default:
                System.out.println("No elegiste algo correcto");
        }

    }
    
}

muy bien explicado

Nice

Comparto mi codigo de esta clase

public class Switch
{
    public static void main(String[] args)
    {
        String colorModeSelected = "Dark";

        switch (colorModeSelected)
        {
            case "Ligth":
                System.out.println("Seleccionaste Light Mode");
                break;
            case "Night": //Ambar
                System.out.println("Seleccionaste Night Mode");
                break;
            case "Blue Dark" :
                System.out.println("Seleccionaste Blue Dark mode");
                break;
            case "Dark" :
                System.out.println("Seleccionaste Dark mode");
                break;
            default:
                System.out.println("No tienes nada seleccionado, selecciona una opcion");
        }
    }
}

El condicional switch case es una estructura que evalúa más de un caso y se caracteriza por:

  • Selección de una opción entre varias.

  • Switch recibe un “caso” y lo evalúa hasta encontrar el caso que corresponda.

  • Se puede usar la opción “default” para cuando no se encuentra el caso dado.

El modo nocturno está en la versión web!!! Seria genial…

Switch () {
Case:
break;
case :
break;
default:
() ;
}

        String colorModeSelected = "Blue dark";

        switch (colorModeSelected){
            case "Ligth":
                System.out.println("Ligth Mode");
                break;
            case "Nigth": //ambar
                System.out.println("Nigth Mode");
                break;
            case "Blue dark":
                System.out.println("Blue Dark Mode");
                break;
            case "Dark":
                System.out.println("Dark Mode");
                break;

            default:
                System.out.println("Selecciona una opcion");
        }
    }
}

Respuesta consola:

"C:\Users\Romen\Desktop\Platzi\Java\4. Curso de introduccion Java SE\Tarea 1\out\production\Tarea 1" SwitchStatement
Blue Dark Mode

Process finished with exit code 0
public class Switch {
    public static void main(String[] args) {

        int x = 7;
        switch(x){
            case 1: System.out.println("La variable x es igual a 1"); break;
            case 2: System.out.println("La variable x es igual a 2"); break;
            case 3: System.out.println("La variable x es igual a 3"); break;
            case 4: System.out.println("La variable x es igual a 4"); break;
            case 5: System.out.println("La variable x es igual a 5"); break;
            default: System.out.println("LA variable x no es igual a ningun valor entre 1 y 5"); break;

        }
    }
}

Aquí algunas diferencias entre if else y switch: https://es.gadget-info.com/difference-between-if-else

Acá les dejo como lo hice yo 😃

public class SwitchStatement {
    public static void main(String[] args) {
        System.out.println("Ingresa el modo de visualización");
        System.out.println("1) Light\n2) Dark\n3) Night\n4) Blue Dark");

        short userOption = 2;

        switch(userOption) {
            case 1:
                System.out.println("Tienes seleccionado light mode");
                break;
            case 2:
                System.out.println("Tienes seleccionado dark mode");
                break;
            case 3:
                System.out.println("Tienes seleccionado night mode");
                break;
            case 4:
                System.out.println("Tienes seleccionado blue dark mode");
                break;
            default:
                System.out.println("Haz ingresado una opción incorrecta");
                break;

        }
    }
}

Excelente clase

excelente explicaicón

Lo hice de una manera para que el usuario pudiera selecionar el modo 😃

import java.util.Scanner;

public class Switch_Primer_Ejemplo {
    public static void main(String[] args) {

        Scanner entrada = new Scanner(System.in);
        String colorModeSelected;

        System.out.println("Escriba la palabra Light, Night, Blue Dark o Dark para hacer efecto: ");
        colorModeSelected = entrada.next();

        switch (colorModeSelected){
            case "Light":
                System.out.println("Selecionaste Light Mode");
                break;
            case "Night":
                System.out.println("Selecionaste Night Mode");
                break;
            case "Blue Dark":
                System.out.println("Selecionaste Blue Dark Mode");
                break;
            case "Dark":
                System.out.println("Selecionaste Dark");
                break;
        }
    }
}```
 public static void main(String[] args) {
        String colorModeSelected  = "Dark";

        switch (colorModeSelected){
            case "Light":
                System.out.println("Seleccionaste Light Mode");
                break;
            case "Night": // Ambar
                System.out.println("Seleccionaste Night");
                break;
            case "blue Dark":
                System.out.println("Seleccionaste blue Dark");
                break;
            case "Dark":
                System.out.println("Selected dark");
                break;
            default:
                System.out.println("Selecciona una opcion");
        }```


Como se activa la nueva forma de usar switch en Java 13…?

Super super supeeer!!

Excelente clase

Switch en java 12

Interesante!

Un ejemplo

string nombre = "Juan";

switch (nombre)
{
	case "Pedro":
		System.out.println("Hola soy Pedro");
	break;
	case "Luis";
		System.out.println("Hola soy Luis");
	break;
	case "Juan":
		System.out.println("Hola soy Juan");
	break;
	default:
		System.out.println("No se encontró el nombre");
	break;
}

Para este caso, se imprimirá en consola
Hola soy Juan

Para usar switch tenes tipos de variables que podemos utilizar como.
byte, short, char, int y String

O wrappers como:
Byte, Short, Character, integer.

super genial como siempre

Suponiendo que para resolver un problema “X” se pudiese utilizar “if” o “switch”, ¿Cuál de las dos alternativas debería utilizar? ¿Hay alguna que tenga ventaja sobre la otra como por ejemplo uso de memoria?. Desde ya, muchas gracias!!

public static void main(String[] args) {

    // CASO SWITCH
    // Se evaluan  las posibles opciones
    // luego de el ingreso o una selección de datos 
    String colorModeSelected = "Ligth";

    switch (colorModeSelected){
        case  "Ligth":
              System.out.println("HA SELECCIONADO EL MODO LIGTH");
              break;
        case  "Nigth":
            System.out.println("HA SELECCIONADO EL MODO NIGTH");
            break;
        case  "Dark":
            System.out.println("HA SELECCIONADO EL MODO DARK");
            break;
        case  "BlueDark":
            System.out.println("HA SELECCIONADO EL MODO BLUE-DARK");
            break;
        default:
            System.out.println("SELECCIONA UNA OPCION VALIDA");
            break;
    }

Me surgió una duda en esta clase tanto como en la de if y es que en dado caso de que el usuario ponga una opción incorrecta ya sea a propósito o se equivoque ¿se puede hacer que el programa vuelva a pedir el valor inicial así como en bucle hasta que ponga la opción o una de las opciones que acepta el programa? y si es así me gustaría saber como si alguien sabe me encantaría que me ayudara

Todo muy claro

Excelente clase instructora Anahí, debemos aprovechar la herramienta switch para hacer evaluaciones de una variable de una forma más organizada, evitando así la creación de condicionales anidados extensos.

Casí no uso Switch, pero en lo que si me gusta hacerlo desde que me lo enseñaron es para hacer un Menú:

//MENU
        System.out.println("BIENVENIDO AL MENÚ");
        System.out.println("1. Inicio - 2. Contactanos - 3.Login");
        int opcion = 1;
        switch (opcion)
        {
            case 1:
                System.out.println("BIENVENIDO A INICIO");
                break;

            case 2:
                System.out.println("BIENVENIDO A CONTACTANOS");
                break;

            case 3:
                System.out.println("BIENVENIDOS AL LOGIN");
                break;
                
            default:
                System.out.println("OPCIÓN INVALIDA!");
                break;
        }```

Excelente explicación, lastima que no han liberado el Switch totalmente

quedo super claro

public class SwitchStatament {
    public static void main(String[] args) {
        String colorMode = "Dark";

        switch (colorMode)
        {
            case "Light":
                System.out.println("Elegiste el color Ligth");
                break;
            case "Dark":
                System.out.println("Elegiste el color Dark");
                break;
            case "Nigth":
                System.out.println("Elegiste el color Nigth");
                break;
            case "Blue Dark":
                System.out.println("Elegiste el color Blue Dark");
                break;
            default:
                System.out.println("Selecciona otra opcion");

        }
    }
}

BUENAS NOCHE EL BREAK PARA SIRVE

Switch OK 😃

Todo Claro.

Nota:

Para los que saben bash les recuerdo que esto es casi lo mismo a un case statement, ex:

#!/bin/bash

while [[ -n "$1" ]];
case "$1" in
	-s|-sudo)
		#something...
		echo "sudo mode is being used"
		;;
	-h|--help)
		#something...
		echo "$help_var"
		exit
		;;
	*)
		echo "ERROR: command not recognized"
		exit
		;;
	esac
	shift
else
	echo "script needs at least one argument to work"
	echo "type $0 --help for help"
	exit
fi

Este es un ejemplo muy básico pero lo ilustra bien, el hecho es que se compara el primer argumento ($1) en una de las 2 posibilidades (-s || -h), y además usa un shift loop para ciclar entre los argumentos .

con el Switch solo se pueden comparar por igualdad verdad?, o tambien podemos compararlas por condiciones como “mayor que”, “menor que”?

Es importante que en el caso de utilizar una variable String, los caracteres sean udenticos al del case

Switch ( Platzi ) {
case Próximo Video
Seguir estudiando
break;
default
ir a acostarse
break;
}

<h1>SwitchStatement.java</h1>

Code:

import java.lang.*;
import java.util.Scanner;

/**
 * SwitchStatement
 */
public class SwitchStatement {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.printf("What GUI theme do you want? (dark/light/filtered): ");
        String uThemeAnswer = scanner.next();

        //swtich-case
        switch (uThemeAnswer) { //
            case "dark": case "DARK": case "Dark": //opt #1
                System.out.printf("\nDark mode ON\nSymbol: 🌚\n");
                break;
            case "light": case "LIGHT": case "Light":
                System.out.printf("\nLight mode ON\nSymbol: 🌝\n");
                break;
            case "filtered": case "FILTERED": case "Filtered":
                System.out.printf("\nFiltered mode ON\nSymbol: 🌗\n");
                break;
            default:
                System.out.printf("\nERROR (1): Unknown argument given\nsir/ma'am the only valid input is dark/light/filtered\nrun the program again(❌)\n");
                break;
        }
    }

}

Output

#1:

What GUI theme do you want? (dark/light/filtered): dark

Dark mode ON
Symbol: 🌚

#2:

What GUI theme do you want? (dark/light/filtered): LIGHT 

Light mode ON
Symbol: 🌝

#3:

What GUI theme do you want? (dark/light/filtered): Filtered 

Filtered mode ON
Symbol: 🌗

#4:

What GUI theme do you want? (dark/light/filtered): your motheer!!!

ERROR (1): Unknown argument given
sir/ma'am the only valid input is dark/light/filtered
run the program again(❌)

Que alivio ver que la sintaxis en java es parecida a la de C (es obvio pero creí que no era así)

Todo clarísimo. Gracias

public class Switch {
    public static void main(String[] args) {

        String colormodeslected = "orange";

        switch (colormodeslected){
            case "Dark":
                System.out.println("Select dark mode");
                break;
            case "Blue":
                System.out.println("Select blue mode");
                break;
            case "Light":
                System.out.println("Select light mode");
                break;
            default:
                System.out.println("Error select other color");
        }

    }
}

Aprendiendo ando

excelente

public class SwichtStatement {
    public static void main(String[] args) {

        String colorSemaforo= "Verde";
        switch (colorSemaforo){
            case "Rojo":
                System.out.println("semaforo en colo: Rojo");
                break;
            case "Amarillo":
                System.out.println("semaforo en colo: Amarillo");
                break;
            case "Verde":
                System.out.println("semaforo en colo: Verde");
                break;
            default:
                System.out.println(" color  no definido ");
        }

    }
}```
public class SwichtStatement {
    public static void main(String[] args) {

        String colorSemaforo= "Verde";
        switch (colorSemaforo){
            case "Rojo":
                System.out.println("semaforo en colo: Rojo");
                break;
            case "Amarillo":
                System.out.println("semaforo en colo: Amarillo");
                break;
            case "Verde":
                System.out.println("semaforo en colo: Verde");
                break;
            default:
                System.out.println(" color  no definido ");
        }

    }
}

increiblee

Quise compartir mi ejemplo, pero no me permite colocarlo en caja de comentarios porque reconoce que estoy enviando URL peligrosa 😕

public class ElMejorJugador {
public static void main(String[] args) {
String Jugador = “Diego Forlan”;

    switch (Jugador){
        case "Diego Forlan":
            System.out.println("Elegiste al Uruguayo Diego Forlan Mejor jugador del mundial 2010");
            break;
        case "Maradona":
            System.out.println("Elegiste a Diego Armando Maradona jugador Argentino para muchos el mejor de la historia");
            break;
        case "Pele":
            System.out.println("Elegiste o rey Pelé para muchos el mejor de la historia junto con Maradona");
            break;
        case "Cristiano Ronaldo":
            System.out.println("Elegiste a el bicho Cristiano Ronaldo gran jugador Portugues actualmente en actividad");
            break;
        default:
            System.out.println("Tu jugador no esta entre los mejores, lo siento O_O");
    }
}

}

Es mejor usar un switch o un if?

public class SwithStatement {
    public static void main(String[] args) {
        String colorModeSelect = "Dark";
        
        // El switch se usa para comparar valores 
        //los valores deben ser del mismo tipo de dato siempre para tener  un resultado.
        switch (colorModeSelect){
            case "Light":
                System.out.println("Elegiste modo light");
                break;
            case "Nigth":
                System.out.println("Elegiste modo Nigth");
                break;
            case "Blue":
                System.out.println("Elegiste modo Blue");
                break;
            case "Dark":
                System.out.println("Elegiste modo Dark");
                break;
            default:
                System.out.println("Elge una opcíon");
        }
    }
}

Los case funcionan muy bien cuando son varias opciones que se deben tomar en cuenta.