Η πρόταση 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.
|