No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

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 90

Preguntas 14

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

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鈥檚

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
}```
  • 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 鉂わ笍 . 鉂わ笍
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 鉂わ笍

Aqu铆 otra forma de construir el ejemplo visto en clase utilizando Java 17 y enumeraciones:

  • Otra cosa que utiliza la computadora para tomar decisiones es la sentencia switch.

Me ha encantado la clase y la manera de explicar estos temas; ya que java es un lenguaje un poco complejo, ya sabia un poco de java pero he encontrado vac铆os que con las clases he aprendido mas.

Aunque la sentencia Switch tiene similitud con la sentencia IF, la Switch permite generar una fomra mas sintetizada en el codigo que nos permita tomar decisiones, se utiliza mucho con operadores de equidad.

Asi quedaria un switch como la otra opcion de dijo la profe

import java.util.Scanner;

public class Swts {
    public static void main(String[] args) {
        int dia;
        Scanner leer = new Scanner(System.in);

        System.out.println("ingrease el numero entre 1 y 7");
        dia = leer.nextInt();

        switch (dia) {
            case 1 -> System.out.println("lunes");
            case 2 -> System.out.println("martes");
            case 3 -> System.out.println("miercoles");
            case 4 -> System.out.println("jueves");
            case 5 -> System.out.println("viernes");
            case 6 -> System.out.println("sabado");
            case 7 -> System.out.println("domingo");
            default -> System.out.println("dia no valido");
        }
    }
}

En los casos que se evaluan en el switch tampoco se pueden repetir los valores si se hace genera un error en el codigo.

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

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 鈥渃ase鈥, 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

Hice este peque帽o ejemplo

Genial como funciona Switch!!

He visto que funciona tanto si al final del switch (despues del 鈥渳鈥) ponemos un 鈥;鈥 como si no lo ponemos, aunque no es necesario.

Comparto mi c贸digo del ejercicio que realice de esta clase.

Mostrara que d铆a de la semana es

import java.util.Scanner;

public class diaSemana {

    public static void main(String[] args) {

        Scanner dia = new Scanner(System.in);

        System.out.println("Indica el dia de semana con numero \n" +
                "1: Lunes \n" +
                "2: Martes \n" +
                "3: Miercoles \n" +
                "4: Jueves \n" +
                "5: Viernes \n" +
                "6: Sabado \n" +
                "7: Domingo" );
        int opcion = dia.nextInt();

        switch (opcion)
        {
            case 1:
                System.out.println("El dia de hoy es lunes");
                break;
            case 2:
                System.out.println("El dia de hoy es martes");
                break;
            case 3:
                System.out.println("El dia de hoy es miercoles");
                break;
            case 4:
                System.out.println("El dia de hoy es jueves");
                break;
            case 5:
                System.out.println("El dia de hoy es viernes");
                break;
            case 6:
                System.out.println("El dia de hoy es sabado");
                break;
            case 7:
                System.out.println("El dia de hoy es domingo");
                break;
            default:
                System.out.println("No es un dia de la semana");
        }
    }
}

La sintaxis de switch y los if, es igualita a Javascript

<public class SwitchStatement {
    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 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("Selecciona una opcion correcta");
        }
    }
}> 

el switch es bueno en algunos casos , pero tiene sus limitaciones,; suele ser muy 煤til especialmente si solo tenemos que comparar si un valor es igual a diferentes opciones

//-> Java > Java12 &&
    switch (colorModeSelected) {
      case "Dark" -> System.out.println("Dark Mode");
      case "Light" -> System.out.println("Light Mode");
      default -> System.out.println("Default Mode");
    }

Me encanta como explica esta profesora馃挌

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 鈥渃aso鈥 y lo eval煤a hasta encontrar el caso que corresponda.

  • Se puede usar la opci贸n 鈥渄efault鈥 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;

        }
    }
}

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 鈥淴鈥 se pudiese utilizar 鈥渋f鈥 o 鈥渟witch鈥, 驴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 鈥渕ayor que鈥, 鈥渕enor 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 = 鈥淒iego 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.