GO FURTHER, FASTER: Try the Swift Career Accelerator today! >>

Switch case

Vous avez vu les instructions if et juste avant les boucles, mais Swift utilise également un autre type de contrôle du flux d'exécution de votre code appelé switch/case. Pensez à cela comme à une forme avancée de if, car vous pouvez avoir beaucoup de conditions à vérifier et Swift exécutera celle qui est vraie.

Dans la forme la plus élémentaire d'un switch/case, vous indiquez à Swift quelle variable vous souhaitez vérifier, puis fournissez une liste des cas possibles pour cette variable. Swift trouvera le premier cas qui correspond à la valeur de votre variable, puis exécutera le bloc de code associé. Lorsque l'exécution est terminée, Swift quitte le bloc switch/case.

Voici un exemple simple :

let liveAlbums = 2

switch liveAlbums {
case 0:
    print("You're just starting out")

case 1:
    print("You just released iTunes Live From SoHo")

case 2:
    print("You just released Speak Now World Tour")

default:
    print("Have you done something new?")
}

Nous aurions très bien pu écrire cela en utilisant beaucoup de blocs if et else if, mais cette façon est plus claire et c'est important.

Un des avantages de switch/case est que Swift veillera à ce que vos cas soient exhaustifs. Autrement dit, s'il est possible que votre variable ait une valeur que vous ne vérifiez pas, Xcode refusera de compiler votre application.

Dans les situations où les valeurs sont effectivement infinies, comme notre entier liveAlbums, vous devez inclure un cas default pour capturer ces valeurs potentielles. Oui, même si vous "savez" que vos données se situent dans une certaine plage bien déterminée, Swift veut être certain de prévoir tous les cas possibles au cas où il rencontrerait une telle valeur.

Swift peut évaluer vos instructions case pour correspondre aux valeurs des variables à verifier. Par exemple, si vous voulez vérifier une plage de valeurs possibles, vous pouvez utiliser l'opérateur d'intervalle fermé, comme ceci :

let studioAlbums = 5

switch studioAlbums {
case 0...1:
    print("You're just starting out")

case 2...3:
    print("You're a rising star")

case 4...5:
    print("You're world famous!")

default:
    print("Have you done something new?")
}

Vous devez savoir que les blocs switch/case en Swift ne fonctionnent pas tout à fait comme ils le font dans d'autres langages que vous avez peut-être déjà vus. Si vous avez l'habitude d'écrire break dans vos blocs case, sachez que cela n'est pas nécessaire en Swift.

Au lieu de cela, vous utilisez le mot-clé fallthrough pour forcer l'exécution du case suivant - c'est en fait le contraire. Bien sûr, si vous n'avez aucune idée de ce que cela signifie, c'est encore mieux : ne vous inquiétez pas !

Hacking with Swift is sponsored by RevenueCat.

SPONSORED Take the pain out of configuring and testing your paywalls. RevenueCat's Paywalls allow you to remotely configure and A/B test your entire paywall UI without any code changes or app updates.

Learn more here

Sponsor Hacking with Swift and reach the world's largest Swift community!

BUY OUR BOOKS
Buy Pro Swift Buy Pro SwiftUI Buy Swift Design Patterns Buy Testing Swift Buy Hacking with iOS Buy Swift Coding Challenges Buy Swift on Sundays Volume One Buy Server-Side Swift Buy Advanced iOS Volume One Buy Advanced iOS Volume Two Buy Advanced iOS Volume Three Buy Hacking with watchOS Buy Hacking with tvOS Buy Hacking with macOS Buy Dive Into SpriteKit Buy Swift in Sixty Seconds Buy Objective-C for Swift Developers Buy Beyond Code

Was this page useful? Let us know!

 
Unknown user

You are not logged in

Log in or create account
 

Link copied to your pasteboard.