Dans cet article, vous apprendrez à utiliser les instructions de contrôle switch pour contrôler le flux de l'exécution de votre programme.
L'instruction switch est également une variété d'instructions de contrôle Swift egif-else, guard etc., qui effectue différentes actions basées sur différentes conditions.
La beauté de l'instruction switch est qu'elle peut comparer une valeur avec plusieurs modèles de correspondance possibles. Par conséquent, il peut être utilisé comme substitut aux longues if… else… if
échelles tout en correspondant à un motif complexe.
Syntaxe de l'instruction switch
La syntaxe de l'instruction switch est:
switch variable / expression (case value1: // instructions case value2: // instructions default: // instructions)
Comment fonctionne Switch Statement dans Swift?
- L'expression de commutateur est évaluée une fois.
- Il prend l'expression et compare avec chaque valeur de cas dans l'ordre (Haut -> Bas).
- S'il y a une correspondance, l'instruction à l'intérieur du cas est exécutée et l'instruction switch entière termine son exécution dès que le premier cas de commutation correspondant est terminé.
- S'il n'y a pas de correspondance pour le cas, il passe au cas suivant.
- Le mot clé par défaut spécifie le code à exécuter s'il n'y a pas de correspondance de casse.
Remarque : Le corps de chaque cas doit contenir au moins une instruction exécutable.
Exemple 1: programme simple utilisant l'instruction 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") )
Lorsque vous exécutez le programme ci-dessus, la sortie sera:
Mercredi
Dans le programme ci-dessus, l'instruction switch commence par faire correspondre la valeur dayOfWeek avec le cas 1 . Étant donné que la valeur dayOfWeek ne correspond pas à la première valeur de cas 1, elle passe au cas suivant jusqu'à ce que l'un corresponde.
Puisque le cas 4 correspond à l'expression du commutateur, l'instruction print("Wednesday")
à l'intérieur du cas s'exécute et le cas du commutateur se termine. Si aucune casse ne correspond, l'instruction dans default s'exécute.
Exemple 2: instruction Switch avec fallthrough
Si vous utilisez le fallthrough
mot - clé dans l'instruction case, le contrôle passe au cas suivant même si la valeur de cas ne correspond pas à l'expression de commutation.
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") )
Lorsque vous exécutez le programme ci-dessus, la sortie sera:
mercredi Jeudi
Dans le programme ci-dessus, le cas 4 exécute l'instruction print("Wednesday")
et le fallthrough
mot clé passe au cas 5 . L'instruction à l' print("Thursday")
intérieur du cas 5 s'exécute même si la casse ne correspond pas à l'expression de commutateur. Par conséquent, vous pouvez voir la sortie jeudi dans la console.
Exemple 3: instruction Switch avec des modèles plus complexes
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 """) )
Lorsque vous exécutez le programme ci-dessus, la sortie sera:
Langage de programmation: Go Version: 10 État: introuvable
Dans le programme ci-dessus, nous faisons correspondre le langage de programmation d'expression de type tuple avec différents cas comme ci-dessous:
case (let name,let version) where (version < 0 && name.count < 0)
Ce cas lie la valeur de l'expression de commutateur à des constantes ou des variables temporaires à utiliser dans le corps du cas avec lelet
mot clé. C'est ce qu'on appelle la liaison de valeur.
Vous pouvez également appliquer une condition à ces valeurs avecwhere
clause. Pour plusieurs conditions where, vous pouvez les concaténer à l'aide de l'&&
opérateur comme dans l'exemple ci-dessus.
Si le cas ne satisfait pas la condition définie dans la clause where, les instructions à l'intérieur de ce bloc de cas ne s'exécutent pas et échouent pour comparer le prochain cas de commutation.case ("Swift" ,… <4 )
Ce cas correspond au premier élément du tuple avec le littéral de chaîne"Swift"
et vérifie également si le deuxième élément se trouve dans la plage unilatérale… <4
.case ("Swift" ,4… )
Ce cas correspond au premier élément du tuple avec le littéral de chaîne"Swift"
et vérifie également si le deuxième élément se trouve dans la plage unilatérale4…
.case (let name, let version)
Ce cas lie toutes les valeurs des tuples aux constantes ou variables temporaires.