Αντί να χρησιμοποιείτε αρκετές δομές if…else, μπορείτε να χρησιμοποιήσετε τη δομή switch.

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

Έτσι, αν έχετε μια μεταβλητή ή μια έκφραση που θέλετε να ελέγξετε για διάφορες πιθανές τιμές και να εκτελέσετε αντίστοιχο κώδικα για κάθε περίπτωση, η δομή switch μπορεί να είναι μια πρακτική και καθαρή λύση.

Σύνταξη:

switch(expression) {
  case x:
    // μπλοκ κώδικα
    break;
  case y:
    // μπλοκ κώδικα
    break;
  default:
    // μπλοκ κώδικα
}

Η expression είναι μια μεταβλητή που θα ελεγχθεί στην εντολή switch και οι case είναι οι διαφορετικές τιμές που μπορεί να έχει αυτή η μεταβλητή. Αν η τιμή της μεταβλητής expression ταιριάζει με μία από τις τιμές των case, τότε θα εκτελεστεί το αντίστοιχο μπλοκ κώδικα. Η εντολή break χρησιμοποιείται για να σταματήσει η εκτέλεση της switch.

Η εντολή default εκτελείται όταν καμία από τις τιμές των case δεν ταιριάζει με την τιμή της μεταβλητής expression.

Παρακάτω είναι ένα παράδειγμα χρήσης της εντολής switch:

int day = 3; // Ορισμός μεταβλητής day με τιμή 3
String dayName; // Δημιουργία μεταβλητής dayName τύπου String

switch (day) { // Έναρξη switch statement με βάση την τιμή της μεταβλητής day
    case 1: // Αν η τιμή της μεταβλητής day είναι 1
        dayName = "Monday"; // Ορισμός της μεταβλητής dayName ως "Monday"
        break; // Έξοδος από το switch statement
    case 2: // Αν η τιμή της μεταβλητής day είναι 2
        dayName = "Tuesday"; // Ορισμός της μεταβλητής dayName ως "Tuesday"
        break; // Έξοδος από το switch statement
    case 3: // Αν η τιμή της μεταβλητής day είναι 3
        dayName = "Wednesday"; // Ορισμός της μεταβλητής dayName ως "Wednesday"
        break; // Έξοδος από το switch statement
    case 4: // Αν η τιμή της μεταβλητής day είναι 4
        dayName = "Thursday"; // Ορισμός της μεταβλητής dayName ως "Thursday"
        break; // Έξοδος από το switch statement
    case 5: // Αν η τιμή της μεταβλητής day είναι 5
        dayName = "Friday"; // Ορισμός της μεταβλητής dayName ως "Friday"
        break; // Έξοδος από το switch statement
    case 6: // Αν η τιμή της μεταβλητής day είναι 6
        dayName = "Saturday"; // Ορισμός της μεταβλητής dayName ως "Saturday"
        break; // Έξοδος από το switch statement
    case 7: // Αν η τιμή της μεταβλητής day είναι 7
        dayName = "Sunday"; // Ορισμός της μεταβλητής dayName ως "Sunday"
        break; // Έξοδος από το switch statement
    default: // Αν η τιμή της μεταβλητής day δεν ταιριάζει με καμία από τις προηγούμενες περιπτώσεις
        dayName = "Invalid day"; // Ορισμός της μεταβλητής dayName ως "Invalid day"
        break; // Έξοδος από το switch statement
}

System.out.println(dayName); // Εκτύπωση της τιμής της μεταβλητής dayName στην οθόνη

Ο παραπάνω κώδικας εκτελεί μια συγκεκριμένη λογική βασιζόμενος στην τιμή της μεταβλητής day. Ακολουθούν τα βήματα που περιγράφονται από τον κώδικα:

  1. Ορίζεται μια μεταβλητή day με τιμή 3.
  2. Δημιουργείται μια μεταβλητή dayName χωρίς αρχική τιμή.
  3. Ξεκινά η δομή επιλογής switch βασισμένη στην τιμή της μεταβλητής day.
  4. Ελέγχεται η τιμή της μεταβλητής day και εκτελείται ο κώδικας που αντιστοιχεί στη συγκεκριμένη τιμή.
  5. Στην περίπτωση που η τιμή της μεταβλητής day είναι 3, η μεταβλητή dayName ορίζεται ως “Wednesday” (Τετάρτη).
  6. Η εκτέλεση του κώδικα συνεχίζεται από το σημείο όπου βρίσκεται ο καθένας από τους break statements στον κώδικα.
  7. Η τιμή της μεταβλητής dayName εκτυπώνεται στην οθόνη χρησιμοποιώντας τη μέθοδο System.out.println().
  8. Στην περίπτωση αυτή, θα εμφανιστεί στην οθόνη η λέξη “Wednesday”.

Συνολικά, ο κώδικας αυτός αναθέτει στη μεταβλητή dayName την ονομασία μιας ημέρας της εβδομάδας με βάση την τιμή της μεταβλητής day και εμφανίζει την τιμή αυτήν στην οθόνη.

Αν η τιμή της μεταβλητής day είναι 3, το αποτέλεσμα που θα εμφανιστεί στην οθόνη είναι:

Wednesday

Αυτό συμβαίνει επειδή η μεταβλητή day έχει τιμή 3 και ο κώδικας εκχωρεί στη μεταβλητή dayName την αντίστοιχη ονομασία της ημέρας, δηλαδή “Wednesday”. Έπειτα, η τιμή της μεταβλητής dayName εμφανίζεται στην οθόνη με τη χρήση της System.out.println().

[adinserter block=”2″]

Όταν η Java φτάνει σε μια εντολή break εντός ενός switch block, αυτό σημαίνει ότι η εκτέλεση του block διακόπτεται.

Αυτό έχει ως αποτέλεσμα να μην εκτελεστούν περαιτέρω εντολές και να μην ελεγχθούν άλλες περιπτώσεις μέσα στο block.

Όταν βρεθεί αληθή συνθήκη και ολοκληρωθεί η αντίστοιχη εργασία, είναι κατάλληλο να χρησιμοποιήσουμε την εντολή break για να διακόψουμε την εκτέλεση του switch. Δεν είναι απαραίτητο να εκτελεστούν άλλες περιπτώσεις καθώς έχει επιτευχθεί η αντίστοιχη λειτουργία.

Συνήθως τοποθετούμε την εντολή break στο τέλος κάθε block κώδικα εντός του switch για να διακόψουμε την εκτέλεση του switch.

Η εντολή default καθορίζει έναν κώδικα που θα εκτελεστεί εάν καμία από οι συνθήκες (case) σε μια δομή επιλογής switch δεν είναι αληθείς.

int day = 8; // Ορισμός μεταβλητής day με τιμή 8
String dayName; // Δήλωση μεταβλητής dayName τύπου String

switch (day) { // Εκτέλεση ενός switch statement με βάση την τιμή της μεταβλητής day
    case 1: // Αν η τιμή της μεταβλητής day είναι 1
        dayName = "Monday"; // Ορισμός της μεταβλητής dayName ως "Monday"
        break; // Έξοδος από το switch statement
    case 2: // Αν η τιμή της μεταβλητής day είναι 2
        dayName = "Tuesday"; // Ορισμός της μεταβλητής dayName ως "Tuesday"
        break; // Έξοδος από το switch statement
    case 3: // Αν η τιμή της μεταβλητής day είναι 3
        dayName = "Wednesday"; // Ορισμός της μεταβλητής dayName ως "Wednesday"
        break; // Έξοδος από το switch statement
    case 4: // Αν η τιμή της μεταβλητής day είναι 4
        dayName = "Thursday"; // Ορισμός της μεταβλητής dayName ως "Thursday"
        break; // Έξοδος από το switch statement
    case 5: // Αν η τιμή της μεταβλητής day είναι 5
        dayName = "Friday"; // Ορισμός της μεταβλητής dayName ως "Friday"
        break; // Έξοδος από το switch statement
    case 6: // Αν η τιμή της μεταβλητής day είναι 6
        dayName = "Saturday"; // Ορισμός της μεταβλητής dayName ως "Saturday"
        break; // Έξοδος από το switch statement
    case 7: // Αν η τιμή της μεταβλητής day είναι 7
        dayName = "Sunday"; // Ορισμός της μεταβλητής dayName ως "Sunday"
        break; // Έξοδος από το switch statement
    default: // Αν η τιμή της μεταβλητής day δεν ταιριάζει με καμία από τις παραπάνω περιπτώσεις
        dayName = "Invalid day"; // Ορισμός της μεταβλητής dayName ως "Invalid day"
        break; // Έξοδος από το switch statement
}

System.out.println(dayName); // Εκτύπωση της τιμής της μεταβλητής dayName

Ο κώδικας αυτός χρησιμοποιεί ένα switch statement για να επιλέξει την κατάλληλη ημέρα (dayName) με βάση την τιμή της μεταβλητής day. Η τιμή της μεταβλητής day έχει οριστεί ως 8.

Ο κώδικας αρχικά ελέγχει την τιμή της μεταβλητής day και εκτελεί τον κώδικα μέσα στην περίπτωση (case) που ταιριάζει με την τιμή της day. Στη συγκεκριμένη περίπτωση, καθώς η τιμή της day είναι 8 και δεν υπάρχει περίπτωση (case) για την τιμή αυτή, εκτελείται η περίπτωση (default) που ορίζει την τιμή της μεταβλητής dayName ως “Invalid day”.

Στη συνέχεια, η τιμή της μεταβλητής dayName εκτυπώνεται στην οθόνη μέσω της εντολής System.out.println(dayName);.

Άρα, στην περίπτωση αυτή, θα εμφανιστεί στην οθόνη το μήνυμα “Invalid day”.

12 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων