¿Hay una forma más limpia de escribir el condicional para el caso "1", "4", "7"? Para este caso, quiero escribir en la cadena "b" solo si el valor de la cadena no es "4".
var b = "" var c = "" let s = "4" switch s { case "0", "6", "8": c += "|_|" case "1", "4", "7": if s != "4" { b += " |" } c += " |" case "2": c += "|_ " case "3", "5", "9": c += " _|" default: c += "" }Este es un lugar donde podría usar la declaración fallthrough :
switch s { case "0", "6", "8": c += "|_|" case "1", "7": b += " |" fallthrough case "4": c += " |" case "2": c += "|_ " case "3", "5", "9": c += " _|" default: break } Dado que desea que "1" y "7" ejecuten ambas declaraciones, asígneles su propio caso y luego fallthough con falla, lo que le permite pasar al siguiente caso. Entonces "1" , "4" y "7" ejecutarán el código en el case "4": case.
Creo que la idea general de la declaración de cambio es que no usa ifs adentro. Probablemente debería crear un caso separado para "4". La cantidad de espacio ahorrado al poner este condicional no vale la pena oscurecer el código de la OMI.