Εναλλαγή δήλωσης Java

⚡ Έξυπνη Σύνοψη

Εναλλαγή δήλωσης Java είναι μια υπό όρους κατασκευή που εκτελεί μόνο το μπλοκ που ταιριάζει με μια δεδομένη τιμή εισόδου. Συγκρίνει έναν ακέραιο χαρακτήρα ή έναν χαρακτήρα με πολλαπλές ετικέτες πεζών-κεφαλαίων, χρησιμοποιώντας break για έξοδο και default για μη ταιριασμένες τιμές.

  • 🔀 Ορισμός διακόπτη: Μια υπό όρους πρόταση που εκτελεί μόνο την περίπτωση που ταιριάζει με την τιμή εισόδου.
  • 🏷️ Ετικέτες θήκης: Κάθε περίπτωση καθορίζει μια τιμή και μια άνω και κάτω τελεία, ακολουθούμενη από εντολές προς εκτέλεση.
  • Διακοπή: Τερματίζει το μπλοκ διακόπτη μόλις εκτελεστεί μια αντίστοιχη περίπτωση.
  • 🧯 Αθέτηση: Εκτελείται όταν καμία περίπτωση δεν ταιριάζει με την δεδομένη τιμή εισόδου.
  • Γιατί να το χρησιμοποιήσετε: Καθαρότερο και ταχύτερο από το nested if…else για πολλές συνθήκες· δέχεται ακέραιους αριθμούς, χαρακτήρες και (Java 8+) χορδές.

Εναλλαγή δήλωσης Java

Εναλλαγή δηλώσεων Java

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

Java Οδηγός Switch Case

Τι είναι το Switch Case in Java?

Ομοίως, ενεργοποιήστε Java είναι ένας τύπος δήλωσης υπό όρους που ενεργοποιεί μόνο τη συνθήκη που ταιριάζει από τη δεδομένη είσοδο. Ας εξετάσουμε το παράδειγμα ενός προγράμματος όπου ο χρήστης δίνει είσοδο ως αριθμητική τιμή (μόνο 1 ψηφίο σε αυτό το παράδειγμα) και η έξοδος πρέπει να είναι ο αριθμός των λέξεων. Ο ακέραια μεταβλητή Το iSwitch, είναι η είσοδος για να λειτουργεί ο διακόπτης.

Οι διάφορες διαθέσιμες επιλογές (περιπτώσεις ανάγνωσης) γράφονται στη συνέχεια ως περίπτωση μαζί με άνω και κάτω τελεία «:»

Αυτό θα έχει στη συνέχεια τη δήλωση που θα εκτελεστεί εάν η περίπτωση και η είσοδος στον διακόπτη ταιριάζουν.

Java Παράδειγμα θήκης διακόπτη

class SwitchBoard{
 public static void main(String args[]){
   int iSwitch=4;
   switch(iSwitch){
     case 0:
     System.out.println("ZERO");
     break;

     case 1:
     System.out.println("ONE");
     break;

     case 2:
     System.out.println("TWO");
     break;

     case 3:
     System.out.println("THREE");
     break;

     case 4:
     System.out.println("FOUR");
     break;

     default:
     System.out.println("Not in the list");
     break;
 }
}
}

Αναμενόμενη παραγωγή:

FOUR

Τώρα τι κάνουν αυτές οι 2 λέξεις σπάσιμο και προεπιλογή που βρίσκονται εκεί έξω;

  • Το πρώτο "σπάσιμο" - απλώς θα ξεσπάσει από το μπλοκ διακόπτη μόλις ικανοποιηθεί μια συνθήκη.
  • "Προεπιλογή" - Αυτό θα εκτελεστεί σε περίπτωση που καμία από τις συνθήκες δεν ταιριάζει με τη δεδομένη είσοδο.

Στο συγκεκριμένο παράδειγμα, αυτές είναι απλές εντολές εκτύπωσης, ωστόσο, μπορούν επίσης να αναφέρονται σε πιο περίπλοκες καταστάσεις όπως η κλήση μιας μεθόδου κ.λπ.

Τι γίνεται αν δεν παρέχετε διάλειμμα;

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

Java Δήλωση αλλαγής

  • Ως τυπική λογική προγραμματισμού, μπορεί απλά να επιτευχθεί με τη χρήση αν...άλλων συνθηκών, αλλά τότε δεν θα βελτιστοποιηθεί για καλή προγραμματιστική πρακτική ούτε ο κώδικας φαίνεται ευανάγνωστος.
  • Σε προγράμματα που περιλαμβάνουν πιο περίπλοκες περιπτώσεις, τα σενάρια δεν θα είναι τόσο απλά και θα απαιτούν την κλήση αρκετών μεθόδων. Το Switch λύνει αυτό το πρόβλημα και αποφεύγει αρκετές ένθετες εντολές if…else. Επίσης, κατά τη χρήση του if…else, συνιστάται να χρησιμοποιείτε την πιο αναμενόμενη συνθήκη στην κορυφή και στη συνέχεια να προχωράτε με ένθετο τρόπο.
  • Ορισμένες δοκιμές συγκριτικής αξιολόγησης έχουν αποδείξει ότι στην περίπτωση της Java με μεγάλο αριθμό επαναλήψεων, η εναλλαγή είναι ταχύτερη σε σύγκριση με τις εντολές if…else.

Σημειώνει τη σημείωση

  • Δεν υπάρχει όριο στον αριθμό των case java που μπορείτε να έχετε.
  • Το Switch java μπορεί να λάβει είσοδο μόνο ως ακέραιοι ή χαρακτήρες.
  • Η τελευταία έκδοση του Java8 εισάγει επίσης την πολυαναμενόμενη υποστήριξη για τη δήλωση συμβολοσειρών java switch.

Λοιπόν τώρα προχωρήστε και καλωδιώστε τον δικό σας πίνακα διανομής!!

Συχνές Ερωτήσεις

A Java Η εντολή switch δέχεται byte, short, int, char, τις κλάσεις περιτύλιξης, enums και (since Java 7) συμβολοσειρές. Οι ετικέτες πεζών-κεφαλαίων πρέπει να είναι σταθερές εκφράσεις συμβατές με τον τύπο μεταβλητής switch.

Χωρίς διακοπή, η εκτέλεση «αποτυγχάνει» και εκτελεί την αντίστοιχη περίπτωση συν όλες τις επόμενες περιπτώσεις, συμπεριλαμβανομένης της προεπιλογής, μέχρι μια διακοπή ή το τέλος του μπλοκ. Αυτό είναι μερικές φορές σκόπιμο, αλλά συχνά είναι σφάλμα.

Ναί. Από Java 7, οι εντολές switch υποστηρίζουν τιμές συμβολοσειράς. Ο switch συγκρίνει τη συμβολοσειρά χρησιμοποιώντας τη μέθοδο equals(), επομένως οι ετικέτες πεζών-κεφαλαίων πρέπει να είναι ακριβείς, με διάκριση πεζών-κεφαλαίων.

Η Τεχνητή Νοημοσύνη μπορεί να αναλύσει μεγάλες αλυσίδες if-else, να εντοπίσει μια μεμονωμένη μεταβλητή που συγκρίνεται και να την αναδιαμορφώσει σε μια πιο καθαρή πρόταση switch με κατάλληλες ετικέτες πεζών-κεφαλαίων και προτάσεις break, βελτιώνοντας την αναγνωσιμότητα και την απόδοση.

Ναι. Τα linters με τη βοήθεια της τεχνητής νοημοσύνης μπορούν να επισημάνουν περιπτώσεις που δεν υπάρχει κάποιο break και ενδέχεται να αποτύχουν ακούσια, και στη συνέχεια να προτείνουν την προσθήκη δηλώσεων break ή ενός σαφούς σχολίου fall-through για να καταστεί σαφής η πρόθεση.

Συνοψίστε αυτήν την ανάρτηση με: