Declaración de Swift Switch (con ejemplos)

En este artículo, aprenderá a usar instrucciones de control de interruptores para controlar el flujo de ejecución de su programa.

La instrucción de cambio también es una variedad de instrucción de control Swift egif-else, guard, etc., que realiza diferentes acciones en función de diferentes condiciones.

La belleza de la declaración de cambio es que puede comparar un valor con varios patrones de coincidencia posibles. Por lo tanto, se puede utilizar como sustituto de if… else… ifescaleras largas mientras combina patrones complejos.

Sintaxis de la instrucción switch

La sintaxis de la instrucción switch es:

 cambiar variable / expresión (caso valor1: // declaraciones caso valor2: // declaraciones predeterminado: // declaraciones)

¿Cómo funciona Switch Statement en Swift?

  • La expresión de cambio se evalúa una vez.
  • Toma la expresión y la compara con cada valor de caso en el orden (Arriba -> Abajo).
  • Si hay una coincidencia, la instrucción dentro del caso se ejecuta y toda la instrucción switch finaliza su ejecución tan pronto como se completa el primer caso switch coincidente.
  • Si no hay coincidencia para el caso, pasa al siguiente caso.
  • La palabra clave predeterminada especifica el código que se ejecutará si no hay coincidencia de casos.

Nota : El cuerpo de cada caso debe contener al menos una declaración ejecutable.

Ejemplo 1: programa simple que usa la instrucción Switch

 let dayOfWeek = 4 switch dayOfWeek ( case 1: print("Sunday") case 2: print("Monday") case 3: print("Tuesday") case 4: print("Wednesday") case 5: print("Thursday") case 6: print("Friday") case 7: print("Saturday") default: print("Invalid day") ) 

Cuando ejecute el programa anterior, la salida será:

 miércoles

En el programa anterior, la declaración de cambio comienza haciendo coincidir el valor de dayOfWeek con el caso 1 . Dado que el valor dayOfWeek no coincide con el valor 1 del primer caso, pasa al siguiente caso hasta que uno coincida.

Dado que el caso 4 coincide con la expresión de cambio, la declaración print("Wednesday")dentro del caso se ejecuta y el caso de cambio termina. Si ningún caso coincide, se ejecuta la instrucción dentro de default .

Ejemplo 2: instrucción Switch con fallthrough

Si usa la fallthroughpalabra clave dentro de la declaración del caso, el control pasa al siguiente caso incluso si el valor del caso no coincide con la expresión del cambio.

 let dayOfWeek = 4 switch dayOfWeek ( case 1 : print("Sunday") case 2: print("Monday") case 3: print("Tuesday") case 4: print("Wednesday") fallthrough case 5: print("Thursday") case 6: print("Friday") case 7: print("Saturday") default: print("Invalid day") ) 

Cuando ejecute el programa anterior, la salida será:

 miércoles Jueves

En el programa anterior, el caso 4 ejecuta la declaración print("Wednesday")y la fallthroughpalabra clave pasa al caso5 . La declaración print("Thursday")dentro del caso 5 se ejecuta incluso si el caso no coincide con la expresión de cambio. Por lo tanto, puede ver la salida del jueves en la consola.

Ejemplo 3: instrucción de cambio con patrones más complejos

 let programmingLanguage = (name: "Go", version: 10) switch programmingLanguage ( case (let name,let version) where (version < 0 && name.count < 0) : print("Invalid input") case ("Swift",let version) where version == 4: print("Found latest version of Swift") case ("Swift" ,… <4 ): print("Found older version of swift)") case ("Swift" ,4… ) : print("Swift version greater than 4 is not released yet") case ("Taylor Swift",30) : print("OMG. This is Taylor swift") case (let name, let version): print(""" Programming Language:(name) Version: (version) Status: Not found """) ) 

Cuando ejecute el programa anterior, la salida será:

 Lenguaje de programación: Go Versión: 10 Estado: No encontrado

En el programa anterior, estamos haciendo coincidir el lenguaje de programación de expresiones de tipo tupla con diferentes casos como se muestra a continuación:

  • case (let name,let version) where (version < 0 && name.count < 0)
    Este caso vincula el valor de la expresión de cambio a constantes o variables temporales para su uso en el cuerpo del caso con letpalabra clave. Esto se conoce como vinculación de valor.
    También puede aplicar condición a esos valores con wherecláusula. Para múltiples condiciones where, puede concatenarlas usando el &&operador como en el ejemplo anterior.
    Si el caso no satisface la condición definida dentro de la cláusula where, las declaraciones dentro de ese bloque de casos no se ejecutan y fallan para comparar el siguiente caso de cambio.
  • case ("Swift" ,… <4 )
    Este caso hace coincidir el primer elemento de la tupla con el literal de cadena "Swift"y también verifica si el segundo elemento se encuentra dentro del rango de un solo lado … <4.
  • case ("Swift" ,4… )
    Este caso hace coincidir el primer elemento de la tupla con el literal de cadena "Swift"y también verifica si el segundo elemento se encuentra dentro del rango de un solo lado 4… .
  • case (let name, let version)
    Este caso une todos los valores de las tuplas a las constantes o variables temporales.

Articulos interesantes...