switch-statement - for - uiswitch swift
caso rápido cayendo a través de (5)
¿Rápido ha caído a través de la declaración? por ejemplo, si hago lo siguiente
var testVar = "hello"
var result = 0
switch(testVal)
{
case "one":
result = 1
case "two":
result = 1
default:
result = 3
}
¿Es posible tener el mismo código ejecutado para el caso "uno" y el caso "dos"?
Aquí hay un ejemplo para usted, fácil de entender:
let value = 0
switch value
{
case 0:
print(0) // print 0
fallthrough
case 1:
print(1) // print 1
case 2:
print(2) // Doesn''t print
default:
print("default")
}
Conclusión: Use fallthrough
para ejecutar el siguiente caso (solo uno) cuando el anterior que tiene fallthrough
coincida o no.
La palabra clave fallthrough
al final de un caso provoca el comportamiento de caída que está buscando y se pueden verificar múltiples valores en un solo caso.
Sí. Puedes hacerlo de la siguiente manera:
var testVal = "hello"
var result = 0
switch testVal {
case "one", "two":
result = 1
default:
result = 3
}
Alternativamente, puede usar la palabra clave fallthrough
:
var testVal = "hello"
var result = 0
switch testVal {
case "one":
fallthrough
case "two":
result = 1
default:
result = 3
}
case "one", "two":
result = 1
No hay declaraciones de interrupción, pero los casos son mucho más flexibles.
Addendum: Como señala Analog File, en realidad hay declaraciones de break
en Swift. Todavía están disponibles para su uso en bucles, aunque son innecesarios en las declaraciones de switch
, a menos que deba completar un caso vacío, ya que no se permiten los casos vacíos. Por ejemplo: default: break
.
var testVar = "hello"
switch(testVar) {
case "hello":
println("hello match number 1")
fallthrough
case "two":
println("two in not hello however the above fallthrough automatically always picks the case following whether there is a match or not! To me this is wrong")
default:
println("Default")
}