Δήλωση Swift Switch (Με παραδείγματα)

Σε αυτό το άρθρο, θα μάθετε να χρησιμοποιείτε τις δηλώσεις ελέγχου διακόπτη για να ελέγχετε τη ροή της εκτέλεσης του προγράμματος.

Η δήλωση διακόπτη είναι επίσης μια ποικιλία της δήλωσης ελέγχου Swift egif-else, guard κ.λπ., που εκτελεί διαφορετικές ενέργειες βάσει διαφορετικών συνθηκών.

Η ομορφιά της δήλωσης διακόπτη είναι, μπορεί να συγκρίνει μια τιμή με πολλά πιθανά μοτίβα αντιστοίχισης. Ως εκ τούτου, μπορεί να χρησιμοποιηθεί ως υποκατάστατο για μεγάλες if… else… ifσκάλες ενώ ταιριάζει με περίπλοκο μοτίβο.

Σύνταξη της δήλωσης διακόπτη

Η σύνταξη της δήλωσης διακόπτη είναι:

 μεταβλητή μεταγωγής / έκφραση (τιμή περίπτωσης 1: // δηλώσεις τιμή περίπτωσης 2: // προεπιλεγμένες δηλώσεις: // δηλώσεις)

Πώς λειτουργεί το Switch Statement στο Swift;

  • Η έκφραση του διακόπτη αξιολογείται μία φορά.
  • Παίρνει την έκφραση και συγκρίνεται με κάθε τιμή υπόθεσης στη σειρά (Κορυφή -> Κάτω).
  • Εάν υπάρχει αντιστοιχία, η δήλωση μέσα στην υπόθεση εκτελείται και ολόκληρη η δήλωση διακόπτη ολοκληρώνει την εκτέλεση μόλις ολοκληρωθεί η πρώτη θήκη διακόπτη αντιστοίχισης.
  • Εάν δεν υπάρχει αντιστοιχία για την υπόθεση, πέφτει στην επόμενη περίπτωση.
  • Η προεπιλεγμένη λέξη-κλειδί καθορίζει τον κώδικα που θα εκτελεστεί εάν δεν υπάρχει αντιστοίχιση πεζών-κεφαλαίων.

Σημείωση : Το σώμα κάθε περίπτωσης πρέπει να περιέχει τουλάχιστον μία εκτελέσιμη δήλωση.

Παράδειγμα 1: Απλό πρόγραμμα χρησιμοποιώντας το Switch Statement

 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") ) 

Όταν εκτελείτε το παραπάνω πρόγραμμα, η έξοδος θα είναι:

 Τετάρτη

Στο παραπάνω πρόγραμμα, η δήλωση διακόπτη ξεκινά αντιστοιχίζοντας την τιμή dayOfWeek με την περίπτωση 1 . Δεδομένου ότι η τιμή dayOfWeek δεν ταιριάζει με την τιμή 1 της πρώτης θήκης, πέφτει στην επόμενη περίπτωση έως ότου ταιριάζει.

Δεδομένου ότι η περίπτωση 4 ταιριάζει με την έκφραση διακόπτη, η δήλωση print("Wednesday")μέσα στην υπόθεση εκτελείται και η θήκη διακόπτη τερματίζεται. Εάν δεν ταιριάζει καμία περίπτωση, εκτελείται η δήλωση εντός της προεπιλεγμένης .

Παράδειγμα 2: Εναλλαγή δήλωσης με εναλλακτική λύση

Εάν χρησιμοποιείτε τη fallthroughλέξη-κλειδί μέσα στη δήλωση περίπτωσης, το στοιχείο ελέγχου προχωρά στην επόμενη περίπτωση, ακόμη και αν η τιμή της υπόθεσης δεν ταιριάζει με την έκφραση εναλλαγής.

 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") ) 

Όταν εκτελείτε το παραπάνω πρόγραμμα, η έξοδος θα είναι:

 Τετάρτη Πέμπτη

Στο παραπάνω πρόγραμμα, η περίπτωση 4 εκτελεί τη δήλωση print("Wednesday")και η fallthroughλέξη-κλειδί προχωρά στην υπόθεση5 . Η δήλωση print("Thursday")μέσα στην υπόθεση 5 εκτελείται ακόμη και αν η υπόθεση δεν ταιριάζει με την έκφραση του διακόπτη. Επομένως, μπορείτε να δείτε την έξοδο την Πέμπτη στην κονσόλα.

Παράδειγμα 3: Εναλλαγή δήλωσης με πιο περίπλοκα μοτίβα

 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 """) ) 

Όταν εκτελείτε το παραπάνω πρόγραμμα, η έξοδος θα είναι:

 Γλώσσα προγραμματισμού: Μετάβαση Έκδοση: 10 Κατάσταση: Δεν βρέθηκε

Στο παραπάνω πρόγραμμα, ταιριάζουμε τον προγραμματισμό έκφρασης Γλώσσα του τύπου tuple με διαφορετικές περιπτώσεις όπως παρακάτω:

  • case (let name,let version) where (version < 0 && name.count < 0)
    Αυτή η περίπτωση δεσμεύει την τιμή έκφρασης εναλλαγής σε προσωρινές σταθερές ή μεταβλητές για χρήση στο σώμα της υπόθεσης με letλέξη-κλειδί. Αυτό είναι γνωστό ως δεσμευτική τιμή.
    Μπορείτε επίσης να εφαρμόσετε συνθήκη σε αυτές τις τιμές με τον whereόρο. Για πολλαπλές συνθήκες όπου μπορείτε να τις συνδυάσετε χρησιμοποιώντας τον &&τελεστή όπως στο παραπάνω παράδειγμα.
    Εάν η υπόθεση δεν πληροί την προϋπόθεση που ορίζεται στο σημείο όπου ο όρος, οι δηλώσεις μέσα σε αυτό το μπλοκ υποθέσεων δεν εκτελούνται και πέφτουν για να συγκρίνουν την επόμενη περίπτωση.
  • case ("Swift" ,… <4 )
    Αυτή η περίπτωση ταιριάζει με το πρώτο στοιχείο tuple με την κυριολεκτική συμβολοσειρά "Swift"και ελέγχει επίσης εάν το δεύτερο στοιχείο βρίσκεται εντός του εύρους μιας όψης … <4.
  • case ("Swift" ,4… )
    Αυτή η περίπτωση ταιριάζει με το πρώτο στοιχείο tuple με την κυριολεκτική συμβολοσειρά "Swift"και ελέγχει επίσης εάν το δεύτερο στοιχείο βρίσκεται εντός του εύρους μιας όψης 4… .
  • case (let name, let version)
    Αυτή η περίπτωση δεσμεύει κάθε τιμή των πλειάδων στις προσωρινές σταθερές ή μεταβλητές.

ενδιαφέροντα άρθρα...