Lección 7 · 7 de 20
Elegir con switch · Go
Elija entre varios casos con switch en Go: varios valores por caso, default, switch sin expresión, instrucción inicial y fallthrough.

switch compara un valor con varios casos y ejecuta el primero que coincide. switch day mira el valor de day; un caso puede tener varios valores separados por comas, como "Saturday", "Sunday", y default se ejecuta cuando no coincide ninguno.
A diferencia de C o JavaScript, en Go cada caso termina solo: no hace falta break, y la ejecución nunca se cuela en el caso siguiente por descuido.
Un switch sin valor es una forma más limpia de escribir una cadena de if y else if: cada case lleva una condición y gana la primera que sea verdadera. Con 82 puntos no se cumple score >= 90, pero sí score >= 80, y la nota es una B.
Igual que if, switch admite una instrucción inicial: switch level := 2; level. Y si de verdad se quiere seguir en el caso siguiente, hay que pedirlo con fallthrough: tras el nivel 2 se ejecuta también el caso 1, sin comprobarlo.
Código · main.go
package mainimport "fmt"func main() { day := "Saturday" // Each case ends on its own: no break needed. switch day { case "Saturday", "Sunday": fmt.Println(day, "is weekend") default: fmt.Println(day, "is a working day") } // With no value, switch works like a chain of if / else. score := 82 switch { case score >= 90: fmt.Println(score, "-> grade A") case score >= 80: fmt.Println(score, "-> grade B") default: fmt.Println(score, "-> grade C") } // An init statement, and fallthrough to run the next case too. switch level := 2; level { case 2: fmt.Println("Level 2: bonus unlocked") fallthrough case 1: fmt.Println("Level 1: basics done") }}Salida · go run main.go
Saturday is weekend 82 -> grade B Level 2: bonus unlocked Level 1: basics done
Para recordar
switch valorbusca el primercaseque coincide.- Un
caseadmite varios valores separados por comas. - No hace falta
break;fallthroughpasa al caso siguiente. switchsin valor sustituye a una cadena deif/else if.defaultse ejecuta si no coincide ningún caso.
Ejercicio
Escriba un switch sobre un número de mes (de 1 a 12) que diga la estación (invierno, primavera, verano u otoño), con varios meses en cada caso y un default para los números no válidos.