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

Περιεχόμενα Κεφαλαίου