Αντί να γράφετε πολλές εντολές if…else, μπορείτε να χρησιμοποιήσετε την εντολή switch.
Η εντολή switch επιλέγει έναν από πολλούς κώδικες που θα εκτελεστούν:
Σύνταξη:
switch(expression) { case x: // μπλοκ κώδικα break; case y: // μπλοκ κώδικα break; default: // μπλοκ κώδικα }
Η expression
είναι μια μεταβλητή που θα ελεγχθεί στην εντολή switch και οι case
είναι οι διαφορετικές τιμές που μπορεί να έχει αυτή η μεταβλητή. Αν η τιμή της μεταβλητής expression
ταιριάζει με μία από τις τιμές των case
, τότε θα εκτελεστεί το αντίστοιχο μπλοκ κώδικα. Η εντολή break
χρησιμοποιείται για να σταματήσει η εκτέλεση της switch.
Η εντολή default
εκτελείται όταν καμία από τις τιμές των case
δεν ταιριάζει με την τιμή της μεταβλητής expression
.
Παρακάτω είναι ένα παράδειγμα χρήσης της εντολής switch:
int day = 3; String dayName; switch (day) { case 1: dayName = "Monday"; break; case 2: dayName = "Tuesday"; break; case 3: dayName = "Wednesday"; break; case 4: dayName = "Thursday"; break; case 5: dayName = "Friday"; break; case 6: dayName = "Saturday"; break; case 7: dayName = "Sunday"; break; default: dayName = "Invalid day"; break; } System.out.println(dayName);
Στο παραπάνω παράδειγμα, έχουμε μια μεταβλητή day
η οποία περιέχει τον αριθμό της ημέρας. Χρησιμοποιούμε την εντολή switch για να ελέγξουμε την τιμή της μεταβλητής day
. Εάν η τιμή της μεταβλητής day
είναι 1, τότε η μεταβλητή dayName
ορίζεται σε “Monday”. Εάν η τιμή της μεταβλητής day
είναι 2, τότε η μεταβλητή dayName
ορίζεται σε “Tuesday” κ.ο.κ. Εάν καμία από τις τιμές των case
δεν ταιριάζει με την τιμή της μεταβλητής day
, τότε η μεταβλητή dayName
ορίζεται σε “Invalid day”.
Τέλος, εκτυπώνουμε την τιμή της μεταβλητής dayName
, η οποία θα είναι η ονομασία της ημέρας ανάλογα με την τιμή της μεταβλητής day
.
Όταν η Java φτάνει σε μια εντολή break
, διακόπτει την εκτέλεση του switch block.
[adinserter block=”2″]
Αυτό θα σταματήσει την εκτέλεση περισσότερου κώδικα και τη δοκιμή περισσότερων περιπτώσεων εντός του block.
Όταν βρεθεί μια ταιριαστή περίπτωση και ολοκληρωθεί η εργασία, είναι ώρα για διακοπή. Δεν χρειάζεται περισσότερος έλεγχος.
Μπορείτε να χρησιμοποιήσετε την εντολή break
στο τέλος κάθε μπλοκ κώδικα στο switch block για να διακόψετε την εκτέλεση του switch.
Παρακάτω είναι ένα παράδειγμα:
int day = 3; String dayName; switch (day) { case 1: dayName = "Monday"; break; case 2: dayName = "Tuesday"; break; case 3: dayName = "Wednesday"; break; case 4: dayName = "Thursday"; break; case 5: dayName = "Friday"; break; case 6: dayName = "Saturday"; break; case 7: dayName = "Sunday"; break; default: dayName = "Invalid day"; break; } System.out.println(dayName);
Στο παραπάνω παράδειγμα, χρησιμοποιούμε την εντολή break
για να σταματήσουμε την εκτέλεση του switch block όταν βρεθεί μια ταιριαστή περίπτωση.
Η εντολή default
καθορίζει κάποιον κώδικα που θα εκτελεστεί εάν δεν υπάρχει ταίριασμα περίπτωσης (case):
int day = 8; String dayName; switch (day) { case 1: dayName = "Monday"; break; case 2: dayName = "Tuesday"; break; case 3: dayName = "Wednesday"; break; case 4: dayName = "Thursday"; break; case 5: dayName = "Friday"; break; case 6: dayName = "Saturday"; break; case 7: dayName = "Sunday"; break; default: dayName = "Invalid day"; break; } System.out.println(dayName);
Στο παραπάνω παράδειγμα, εάν η τιμή της μεταβλητής day
δεν ταιριάζει με καμία από τις περιπτώσεις (case), τότε η εντολή default
θα εκτελέσει το μπλοκ κώδικα που βρίσκεται μετά το default
, που σε αυτήν την περίπτωση θέτει τη μεταβλητή dayName
ίση με το κείμενο “Invalid day”.