Swift Sentencia switch
Sentencias condicionales en Swift
switchLa sentencia permite probar si una variable es igual a múltiples valores. En Swift, una vez que una sentencia case coincide, toda la sentencia switch completa su ejecución.
Sintaxis
Sintaxis de la sentencia switch en Swift:
switch expression {
case expression1 :
statement(s)
fallthrough /* 可选 */
case expression2, expression3 :
statement(s)
fallthrough /* 可选 */
default : /* 可选 */
statement(s);
}
Generalmente, la sentencia fallthrough no se utiliza en la sentencia switch.
Aquí debemos tener en cuenta que si no se utiliza la sentencia fallthrough en la sentencia casefallthroughdespués de ejecutar la sentencia case actual, switch termina y el flujo de control saltará a la siguiente línea después de la sentencia switch.
Si se utiliza la sentencia fallthroughfallthroughcontinuará ejecutando las sentencias case o default posteriores, sin importar si la condición se cumple o no.
Nota:En la mayoría de los lenguajes, en el bloque de la sentencia switch, case debe ir seguido de break; de lo contrario, las sentencias posteriores a case se ejecutarán secuencialmente. En Swift, por defecto no se continúa ejecutando y switch también termina. Si quieres que en Swift las sentencias posteriores a case se ejecuten en orden, necesitas usar la sentencia fallthrough.
Ejemplo 1
El siguiente ejemplo no usa la sentencia fallthrough:
import Cocoa
var index = 10
switch index {
case 100 :
print( "index 的值为 100")
case 10,15 :
print( "index 的值为 10 o 15")
case 5 :
print( "index 的值为 5")
default :
print( "默认 case")
}
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
index 的值为 10 o 15
Ejemplo 2
El siguiente ejemplo usa la sentencia fallthrough:
import Cocoa
var index = 10
switch index {
case 100 :
print( "index 的值为 100")
fallthrough
case 10,15 :
print( "index 的值为 10 o 15")
fallthrough
case 5 :
print( "index 的值为 5")
default :
print( "默认 case")
}
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
index 的值为 10 o 15 index 的值为 5Otras extensiones