NEW: Join my free 100 Days of SwiftUI challenge 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 !

SPONSORED Instabug helps you identify and resolve severe crashes quickly. You can retrace in-app events and know exactly which line of code caused the crash along with environment details, network logs, repro steps, and the session profiler. Ask more questions or keep users up-to-date with in-app replies straight from your dashboard. Instabug takes data privacy seriously, so no one sees your data but you! See more detailed features comparison and try Instabug's crash reporting SDK for free.

BUY OUR BOOKS
Buy Pro Swift 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 (Vapor Edition) 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 Server-Side Swift (Kitura Edition) Buy Beyond Code

Was this page useful? Let us know!