Η πρόταση SWITCH |
Η πρόταση switch εξηγείται με τη βοήθεια του προγράμματος στο αρχείο SWITCH.C. Όπως είναι φανερό η πρόταση switch λειτουργεί σαν ένα είδος εξειδικευμένου πολλαπλού if. Η πρόταση ξεκινά με τη λέξη κλειδί switch και ακολουθεί μία μεταβλητή σε παρενθέσεις, η οποία μεταβλητή λειτουργεί ως πολλαπλός διακόπτης. Στη συνέχεια, μέσα σε αγκύλες, παρατίθενται οι τιμές που μπορεί να πάρει η μεταβλητή διακόπτης, με την καθε τιμή να περικλείεται από λέξη κλειδί case και μιά ανω-κάτω τελεία. Μετά από κάθε τιμή ακολουθούν οι προτάσεις που πρέπει να εκτελεστούν. Συνήθως πρόκειται γιά απλή ακολουθία δύο ή τριών προτάσεων. Στο παράδειγμα η μεταβλητή διακόπτης είναι η truck και οι τιμές που προβλέπονται είναι οι 3, 4, 5 έως 8 και 11. Είναι προφανές οτι η μεταβλητή διακόπτης μπορεί να λαμβάνει μόνο διακριτές τιμές, δηλαδή να πρόκειται γιά ακέραια μεταβλητή ή γιά χαρακτήρα. Σημειώστε οτι κάθε επιλογή μπορεί να περιλαμβάνει περισσότερες τιμές. Επίσης σημειώστε την επιλογή default στο τέλος της δομής switch, που ενεργοποιείται όταν η μεταβλητή διακόπτης πάρει μία τιμή που δεν προβλέπεται ρητά. Η χρήση της επιλογής default δεν είναι υποχρεωτική. Σε περίπτωση που η μεταβλητή διακόπτης πάρει μιά τιμή που δεν έχει προβλεφθεί τότε απλά καμμία επιλογή δεν εκτελείται. Ιδιαίτερη σημασία έχει η χρήση της πρότασης break στο τέλος της ακολουθίας προτάσεων κάθε επιλογής. Μόλις εκτελεστούν οι προτάσεις της επιλογής η πρόταση break μεταφέρει τον έλεγχο στο τέλος της δομής switch, δηλαδή στην πρόταση αύξησης της επανάληψης. Σε περίπτωση παράλειψης της πρότασης break η επιλογή default, η οποία είναι πάντα αληθής, θα εκτελεστεί και αυτή, ανεξάρτητα από την ενεργοποίηση ή όχι άλλης προηγούμενης επιλογής. Το αποτέλεσμα εκτέλεσης του προγράμματος δίνεται παρακάτω The value is three The value is four The value is between 5 and 8 The value is between 5 and 8 The value is between 5 and 8 The value is between 5 and 8 It is one of the undefined values It is one of the undefined values The value is eleven It is one of the undefined values Επομένως η δομή switch μπορεί να υλοποιηθεί ως πολυεπίπεδο if στη μορφή που δίνεται παρακάτω. Η παράλειψη τοης επιλογής default ισοδυναμεί με την παράλειψη του τελικού κλάδου else. Η παράλειψη της πρότασης break ισοδυναμεί με την αντικατάσταση της δομής if ... else if ... else if με μία απλή ακολουθία από προτάσεις if ... if ... if. switch (μεταβλητή) { if (μεταβλητή == τιμή 1) case τιμή 1 : πρόταση 1; πρόταση 1; break; else if (μεταβλητή == τιμή 2) case τιμή 2 : πρόταση 2; πρόταση 2; break; else ... ... else if (μεταβλητή == τιμή n) case τιμή n : πρόταση n; πρόταση n; break; else πρόταση d; default : πρόταση d; } Προσπαθήστε να επαναλάβετε το πρόγραμμα χωρίς τις εντολές break. Στη συνέχεια αφαιρέστε και την επιλογή default. |
![]() |
![]() |
![]() |