Wednesday, October 10, 2018

ΕΝΟΤΗΤΑ 9 – Conditions Και Loops Στην JavaScript (Part 2)

Στην προηγούμενη ενότητα μιλήσαμε για το if else και πως μπορούμε να το εφαρμόσουμε στον κώδικα μας όταν έχουμε ανάγκη να ελέγξουμε περισσότερες από μια συνθήκη. Εάν όμως καταλήξουμε να χρησιμοποιήσουμε πάρα πολλά lf else ίσως το switch να είναι μια καλύτερη λύση. 

 
Ας δούμε ένα ολοκληρωμένο παράδειγμα και θα εξηγήσουμε αμέσως μετά πως λειτουργεί










Ορίζουμε λοιπόν εξ αρχής μια μεταβλητή a και της αναθέτουμε το String 1 (όχι τον αριθμό 1.) και μετά ορίζουμε μια δεύτερη μεταβλητή με το όνομα result η οποία θα λάβει την τελική της τιμή από το αποτέλεσμα της σύγκρισης που θα κάνει το switch.

To switch ορίζεται με την λέξη κλειδί switch και αμέσως μετά ακολουθεί η μεταβλητή για την οποία θα κάνουμε διάφορους ελέγχους ανάλογα με τους κανόνες που έχουμε ορίσει μέσα στο switch. Μέσα στην παρένθεση που ακολουθεί το switch βάζουμε την μεταβλητή που θέλουμε να ελέγξουμε. Προσέξτε δεν βάζουμε συνθήκη εδώ αλλά μια μεταβλητή που ξέρουμε ακριβώς ποια είναι η τιμή της.


Μέσα λοιπόν σε άγκιστρα ( { } ) ξεκινάμε μια σειρά από ελέγχους που ορίζονται από την λέξη case. Κάθε case ακολουθείται και από μια τιμή την οποία συγκρίνουμε με αυτή που έχει η μεταβλητή που βάλαμε μέσα στην παρένθεση του Switch στην αρχή. Εάν η μεταβλητή περιέχει την τιμή για την οποία κάνουμε τον έλεγχο, τότε αμέσως μετά από το colon ( : ) οτιδήποτε κώδικα έχουμε γράψει θα εκτελεστεί. Νομίζω ότι είναι πολύ φανερό πως κάνουμε ελέγχους με το case. Γράφουμε είτε αριθμούς είτε string που ίσως περιέχει η μεταβλητή και colon ( : ).

Θα παρατηρήσετε ότι μέσα σε κάθε case, η ολοκλήρωση εκτέλεσης του κώδικα του περιέχει την λέξη κλειδί break. Αν και η χρήση του break είναι προαιρετική, δίνει όμως την απαραίτητη λειτουργικότητα που ζητάμε στον κώδικα μας - όταν εκτελεστεί ο κώδικας του εκάστοτε case, το break θα βοηθήσει το πρόγραμμα μας να σταματήσει να “ασχολείται” με το switch και να συνεχίσει με το υπόλοιπο πρόγραμμα της εφαρμογής. Με άλλα λόγια όταν μια από τις συνθήκες του switch βγει true, τότε θα εκτελεστεί ο κώδικας του εκάστοτε case, και με το break το πρόγραμμα θα μεταπηδήσει έξω από το switch για να συνεχίσει την εκτέλεση του υπόλοιπου προγράμματος.

 
Όπως και στο if else έτσι και στο switch, για να μπορέσουμε να καλύψουμε οποιαδήποτε άλλη συνθήκη για την οποία δεν έχουμε κάνει έλεγχο μπορούμε να χρησιμοποιήσουμε την λέξη κλειδί default. Με αυτό τον τρόπο είμαστε σίγουροι ότι το πρόγραμμα μας σίγουρα θα περάσει από το switch είτε γιατί βγήκε true κάποια από τις συνθήκες για τις οποίες κάναμε έλεγχο είτε γιατί ενεργοποιήθηκε το default για οποιαδήποτε άλλη συνθήκη για την οποία δεν ελέγξαμε.

Προσέξτε λίγο με το break. Αν ξεχάσετε να το βάλετε τότε ο κώδικας θα εκτελέσει το case για το οποίο βγήκε true η συνθήκη αλλά θα συνεχίσει και θα εκτελέσει και τον κώδικα του επόμενου case. Αν και αυτό δεν έχει break τότε θα συνεχίσει να εκτελεί και τον κώδικα και του επόμενου case μέχρι να φτάσει στο default. Πολλές φορές η παράλειψη ενός break είναι εσκεμμένη εάν θέλουμε να εκτελεστεί ο ίδιος κώδικας για περισσότερα από ένα case.
















 
Μιχάλης Κασάπογλου