Εισαγωγή
Οι δηλώσεις υπό όρους είναι μία από τις πιο σημαντικές ροές ελέγχου σε οποιαδήποτε γλώσσα προγραμματισμού. Τις χρησιμοποιούμε για να καθορίσουμε τη συμπεριφορά της εκτέλεσης υπό κάποια συνθήκη. Στη Javascript, τα μπλοκ υπό όρους μπορούν να κατασκευαστούν χρησιμοποιώντας if, else if, else, και switch δηλώσεις.
Η δήλωση switch καθιστά τη ροή ελέγχου εύκολη στην ανάγνωση, λαμβάνοντας την απόφαση έναντι ορισμένων πιθανών αποτελεσμάτων της έκφρασης. Ανάλογα με την περίπτωση χρήσης που ταιριάζει, μπορούν να εκτελεστούν ένα ή περισσότερα μπλοκ κώδικα. Ο έλεγχος switch είναι παρόμοιος με τη δήλωση else if. Ωστόσο, η switch είναι πιο ευανάγνωστη όσον αφορά τη σύνταξη. Είναι επίσης ιδανική για σενάρια με πολλαπλά πιθανά αποτελέσματα.
Σε αυτόν τον οδηγό, θα επικεντρωθούμε στη δήλωση switch στη Javascript και θα την εφαρμόσουμε για να δημιουργήσουμε σύνθετες δομές ελέγχου. Θα μάθουμε επίσης πώς να χρησιμοποιούμε τις δηλώσεις break , case, και default δηλώσεις μέσα στο μπλοκ switch για να κατευθύνουμε τη ροή του ελέγχου.
Χρήση της δήλωσης Switch
Η δήλωση switch λειτουργεί συγκρίνοντας την τιμή μιας μεταβλητής με πιθανές εκφράσεις. Στη συνέχεια, εκτελεί το μπλοκ κώδικα που ταιριάζει με το αποτέλεσμα. Η σύνταξη της δήλωσης switch δεν διαφέρει από τη δήλωση if. Εν συντομία, η σύνταξη της δήλωσης switch γράφεται ως εξής:
|
1 2 |
switch() { } |
Παρακάτω υπάρχει ένα παράδειγμα της δήλωσης switch. Έχει δύο περιπτώσεις ή δύο πιθανά αποτελέσματα μαζί με μια εναλλακτική επιλογή που καθορίζεται από τη λέξη-κλειδί default. Αυτή η εναλλακτική επιλογή εκτελείται όταν ολοκληρωθεί η εκτέλεση ή όταν δεν βρεθεί αντίστοιχη περίπτωση:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
switch (expression) { case x: // εκτελεί αυτό το μπλοκ κώδικα όταν η έκφραση ταιριάζει με την περίπτωση x break; case y: // εκτελεί αυτό το μπλοκ κώδικα όταν η έκφραση ταιριάζει με την περίπτωση y break; default: // προεπιλεγμένο μπλοκ } |
Ο παραπάνω κώδικας εκτελείται ως εξής:
-
Πρώτον, αξιολογείται η έκφραση.
-
Στη συνέχεια, το αποτέλεσμα της έκφρασης συγκρίνεται με την case x. Εάν η τιμή ταιριάζει, εκτελείται το μπλοκ κώδικα κάτω από την case x .
-
Εάν η έκφραση δεν ταιριάζει με την case x, τότε συγκρίνεται η case y. Εάν βρεθεί αντιστοιχία, τότε εκτελείται ο κώδικας της case y .
-
Τέλος, εάν ούτε η case x ούτε η case y ταιριάζουν, τότε εκτελείται ο κώδικας της default και ο έλεγχος βγαίνει έξω από το μπλοκ switch .
Πρακτικό παράδειγμα
Για να κατανοήσουμε τη δήλωση switch, ας ρίξουμε μια ματιά σε ένα πρακτικό παράδειγμα. Θα εξαγάγουμε την τιμή της ημέρας της εβδομάδας για την τρέχουσα ημερομηνία, χρησιμοποιώντας τη μέθοδο getDay() του αντικειμένου Date της Javascript. Αυτή η τιμή είναι ένας αριθμός, για την Κυριακή έως και 6 που είναι για το Σάββατο. Θα την αξιολογήσουμε έναντι των τιμών για να προσδιορίσουμε ποια ημέρα της εβδομάδας είναι:
|
1 |
const day = new Date().getDay(); |
Στη συνέχεια, θα στείλουμε αυτήν την τιμή στη δήλωση switch. Η δήλωση switch θα εκτελεστεί από πάνω προς τα κάτω για να την αντιστοιχίσει με τις περιπτώσεις ώστε να προσδιορίσει ποια ημέρα της εβδομάδας είναι. Μόλις βρεθεί η περίπτωση, η εντολή break θα σταματήσει το μπλοκ switch από το να συνεχίσει να αξιολογεί δηλώσεις:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
// Ορισμός της τρέχουσας ημέρας της εβδομάδας σε μια μεταβλητή, με το 0 να είναι η Κυριακή και το 6 το Σάββατο const day = new Date().getDay(); switch (day) { case 0: console.log("Είναι Κυριακή"); break; case 1: console.log("Είναι Δευτέρα!"); break; case 2: console.log("Είναι Τρίτη."); break; case 3: console.log("Τετάρτη κιόλας!"); break; case 4: console.log("Είναι Πέμπτη"); break; case 5: console.log("Καλή Παρασκευή!"); break; case 6: console.log("Είναι Σάββατο!"); break; default: console.log("Δεν αντιστοιχεί καμία περίπτωση") } |
Ανάλογα με την τιμή που επιστρέφεται από τη getDate() μέθοδο, θα ελέγχεται με τις περιπτώσεις μία προς μία, ξεκινώντας από την κορυφή. Το αποτέλεσμα θα είναι διαφορετικό ανάλογα με την ημέρα που εκτελέσατε τον κώδικα. Το προεπιλεγμένο μπλοκ κώδικα (default) τοποθετείται έτσι ώστε αν δεν ταιριάζει καμία περίπτωση, να μπορούμε να διαχειριστούμε αυτό το σενάριο. Ωστόσο, εδώ σε αυτόν τον κώδικα, το default δεν θα κληθεί ποτέ, καθώς υπάρχει μόνο ένας περιορισμένος αριθμός ημερών της εβδομάδας.
Η δήλωση break διασφαλίζει ότι μόλις αντιστοιχιστεί η περίπτωση, δεν θα ελεγχθούν άλλες περιπτώσεις και ο έλεγχος θα βγει από τη δήλωση switch. Αυτό κάνει το πρόγραμμα πιο αποτελεσματικό και γρήγορο.
Έλεγχος έναντι εύρους τιμών στη Switch
Μέχρι τώρα, εξετάζαμε πολύ απλές περιπτώσεις χρήσης. Αλλά μπορεί να υπάρξουν φορές που θα χρειαστεί να γίνει έλεγχος έναντι ενός εύρους τιμών αντί για μία μεμονωμένη τιμή. Μπορούμε να το κάνουμε αυτό ορίζοντας την έκφρασή μας σε true και εκτελώντας μια λειτουργία μέσα σε κάθε δήλωση case.
Ας δείξουμε αυτήν την περίπτωση χρήσης με τη βοήθεια ενός παραδείγματος. Θα πάρουμε έναν αριθμό και, στη συνέχεια, θα τον μετατρέψουμε σε βαθμό χρησιμοποιώντας την παρακάτω κατηγοριοποίηση:
-
Βαθμός 90 και άνω είναι A
-
Βαθμός από 80 έως 89 είναι B
-
Βαθμός από 70 έως 79 είναι C
-
Βαθμός από 60 έως 69 είναι D
-
Βαθμός 59 ή κάτω είναι F
Θα γράψουμε αυτές τις δηλώσεις ως δηλώσεις switch. Παρακάτω είναι ο κώδικας για αυτό:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
// Βαθμός μαθητή const grade = 87; switch (true) { // Εάν η βαθμολογία είναι 90 ή μεγαλύτερη case grade >= 90: console.log("A"); break; // Εάν η βαθμολογία είναι 80 ή μεγαλύτερη case grade >= 80: console.log("B"); break; // Εάν η βαθμολογία είναι 70 ή μεγαλύτερη case grade >= 70: console.log("C"); break; // Εάν η βαθμολογία είναι 60 ή μεγαλύτερη case grade >= 60: console.log("D"); break; // Οτιδήποτε 59 ή κάτω θεωρείται αποτυχία default: console.log("F"); } |
Σε αντίθεση με τα παραπάνω παραδείγματα κώδικα, εδώ έχουμε ορίσει την έκφραση στην παρένθεση ως true. Επομένως, όποια δήλωση case ταιριάζει με την τιμή true, θα εκτελεστεί. Ακριβώς όπως η δήλωση else if, η πρώτη δήλωση που ταιριάζει με την καθορισμένη τιμή θα εκτελεστεί. Εδώ το αποτέλεσμα θα είναι B, παρά το γεγονός ότι ακόμα και τα C και D ταιριάζουν επίσης με την έκφραση.
Πολλαπλές περιπτώσεις
Αν θέλετε να έχετε περισσότερες από μία περιπτώσεις με το ίδιο μπλοκ κώδικα, είναι επίσης εφικτό. Αυτό είναι ανάλογο με τη συνθήκη ή στη δήλωση if. Σε τέτοια σενάρια, μπορούμε να καθορίσουμε περισσότερες από μία περιπτώσεις για κάθε μπλοκ κώδικα.
Για να εικονογραφήσουμε αυτή την έννοια, θα παρέχουμε ένα παράδειγμα με τους μήνες του έτους. Θα κατηγοριοποιήσουμε αυτούς τους μήνες στις εποχές του έτους. Αρχικά, θα χρησιμοποιήσουμε τη νέα μέθοδο Date() για να βρούμε έναν αριθμό που αντιστοιχεί στον τρέχοντα μήνα και να τον εφαρμόσουμε στη μεταβλητή month. Η μέθοδος Date().getMonth() επιστρέφει έναν αριθμό από 0 έως 11, με το 0 να είναι ο Ιανουάριος και το 11 να αντιστοιχεί στον Δεκέμβριο.
Θα κάνουμε την κατηγοριοποίηση χρησιμοποιώντας τις παρακάτω προδιαγραφές:
-
Χειμώνας: Ιανουάριος, Φεβρουάριος και Μάρτιος
-
Άνοιξη: Απρίλιος, Μάιος και Ιούνιος
-
Καλοκαίρι: Ιούλιος, Αύγουστος και Σεπτέμβριος
-
Φθινόπωρο: Οκτώβριος, Νοέμβριος και Δεκέμβριος
Δείτε πώς θα μοιάζει ο κώδικας:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
const month = new Date().getMonth(); switch (month) { // Ιανουάριος, Φεβρουάριος, Μάρτιος case 0: case 1: case 2: console.log("Χειμώνας"); break; // Απρίλιος, Μάιος, Ιούνιος case 3: case 4: case 5: console.log("Άνοιξη"); break; // Ιούλιος, Αύγουστος, Σεπτέμβριος case 6: case 7: case 8: console.log("Καλοκαίρι"); break; // Οκτώβριος, Νοέμβριος, Δεκέμβριος case 9: case 10: case 11: console.log("Φθινόπωρο"); break; default: console.log("Κάτι πήγε στραβά."); } |
Όταν εκτελεστεί ο παραπάνω κώδικας, ανάλογα με τον μήνα, το όνομα της εποχής θα εμφανιστεί στην κονσόλα.
Συμπέρασμα
Σε αυτόν τον οδηγό, δείξαμε πώς να χρησιμοποιήσετε τη δήλωση switch σε εφαρμογές Javascript. Εφαρμόσαμε επίσης τη δήλωση switch σε ένα εύρος τιμών και σε πολλαπλές περιπτώσεις μαζί με τη λέξη-κλειδί default. Αν θέλετε να μάθετε περισσότερα για τη Javascript, μπορείτε να δείτε τους ακόλουθους οδηγούς:
- Εργασία με τη JavaScript: Τι είναι τα Αντικείμενα;
- JavaScript: Ένας οδηγός για το πώς να κάνετε ευρετηρίαση, διαχωρισμό και χειρισμό συμβολοσειρών
- Εργασία με τη JavaScript: Πώς λειτουργούν οι Κλάσεις
Καλό προγραμματισμό!
Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.