Ένας αρχάριος οδηγός για λογικούς και σχετικούς τελεστές στην Java

Ένας αρχάριος οδηγός για λογικούς και σχετικούς τελεστές στην Java

Οι τελεστές είναι σύμβολα που χρησιμοποιούνται για την εκτέλεση πράξεων σε τιμές, μεταβλητές ή προτάσεις. Οι εκφράσεις στις οποίες εκτελούν αυτές τις ενέργειες ονομάζονται τελεστέοι. Οι πράξεις επιστρέφουν ένα boolean αποτέλεσμα (αληθές ή λανθασμένο) για σχεσιακούς, ίσους και λογικούς τελεστές.





Ο αριθμός τελεστών που λαμβάνει ένας τελεστής καθορίζει τον τύπο του. Ο τελεστής που λαμβάνει έναν τελεστή ονομάζεται «unary». Ένας τελεστής που παίρνει δύο τελεστέους ονομάζεται «δυαδικός».





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





Λογικοί χειριστές

Χρησιμοποιούνται για τη δημιουργία λογικών δηλώσεων κατά τον προγραμματισμό. Υπάρχουν έξι λογικοί τελεστές στην Java. Ο παρακάτω πίνακας τα συνοψίζει.

ΧειριστήςΟνομαΤύπος
|Boolean Logical ORΔυάδικος
&Boolean Logical ANDΔυάδικος
^Boolean Logical Exclusive ORΔυάδικος
||Υπό όρους ORΔυάδικος
&&Υπό όρους ΚΑΙΔυάδικος
!Λογικό ΟΧΙUnary

Εάν θέλετε να ελέγξετε εάν ισχύει μία ή και οι δύο συνθήκες, χρησιμοποιήστε αυτόν τον τελεστή. Μια συνθήκη είναι μια έκφραση που μπορεί να είναι αληθινή ή ψευδής.



Boolean Logical Inclusive OR (|)

Το λογικό OR ελέγχει εάν και οι δύο τελεστέοι είναι αληθείς πριν αξιολογήσει την έκφραση.

if ( dob <2005 | height <= 5){
money++;
}

Το παραπάνω παράδειγμα θα δώσει σε κάποιον περισσότερα χρήματα εάν η ημερομηνία γέννησής του (dob) είναι μικρότερη από το 2005 ή εάν το ύψος του είναι μικρότερο ή ίσο με 5 πόδια.





Boolean Logical AND (&)

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

Σχετικά: Πώς να επικυρώσετε συμβολοσειρές χρησιμοποιώντας Boolean Methods στην Python





Boolean Logical Exclusive OR (^)

Εάν θέλετε να ελέγξετε εάν μία από τις προϋποθέσεις ισχύει, αλλά όχι και οι δύο, τότε αυτός είναι ο χειριστής που πρέπει να χρησιμοποιήσετε. Ο παρακάτω πίνακας αληθείας συνοψίζει τα αποτελέσματα που θα δείτε όταν το χρησιμοποιείτε.

έκφραση1έκφραση2έκφραση1 ^ έκφραση2
ψευδήςψευδήςψευδής
ψευδήςαληθήςαληθής
αληθήςψευδήςαληθής
αληθήςαληθήςψευδής

Boolean Conditional AND (&&)

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

Εάν το αριστερό μέρος διαπιστωθεί ότι είναι ψευδές, τότε η εκτέλεση σταματά αμέσως. Διαφορετικά, η αξιολόγηση του σωστού μέρους θα συνεχιστεί. Αυτό το χαρακτηριστικό είναι γνωστό ως αξιολόγηση βραχυκυκλώματος.

Δείτε τον παρακάτω πίνακα αλήθειας για να βασιστείτε στην κατανόησή σας για αυτόν τον χειριστή.

έκφραση1έκφραση2έκφραση1 && έκφραση2
ψευδήςψευδήςψευδής
ψευδήςαληθήςψευδής
αληθήςψευδήςψευδής
αληθήςαληθήςαληθής

Υπό όρους OR (||)

Εάν οποιαδήποτε από τις συνθήκες είναι ψευδής, τότε η εκτέλεση θα μεταβεί στο επόμενο μέρος του προγράμματος. Με άλλα λόγια, και οι δύο προϋποθέσεις πρέπει να ισχύουν.

Αυτός ο τελεστής είναι παρόμοιος με το Λογικό OR. Ελέγχει επίσης εάν ισχύει μία ή και οι δύο προϋποθέσεις πριν από την εκτέλεση συγκεκριμένου κώδικα.

Παρόμοια με το υπό όρους AND, το λογικό OR χρησιμοποιεί επίσης αξιολόγηση βραχυκυκλώματος. Αρχικά ελέγχει εάν ο τελεστής στα αριστερά είναι αληθινός πριν αξιολογήσει τον έναν στα δεξιά.

Σχετίζεται με: Τι είναι το Constructor στην Java και πώς το χρησιμοποιείτε;

πώς να κάνετε τον φορητό υπολογιστή σας καλύτερο για παιχνίδια

Εάν η κατάσταση στα αριστερά διαπιστωθεί ότι είναι αλήθεια, τότε δεν χρειάζεται να ελέγξετε τη δεξιά. Διαφορετικά, η αξιολόγηση στα δεξιά θα συνεχιστεί.

Λογικό ΟΧΙ (!)

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

if(!(x>5)){
// statements
}

Η παραπάνω δήλωση σημαίνει ότι εάν το 'x είναι μεγαλύτερο από 5' ΔΕΝ είναι αληθές, τότε εκτελέστε τις προτάσεις μέσα στο αν Το

Παρατηρήστε τη χρήση στρογγυλών παρενθέσεων με την έκφραση (x> 5). Εάν δεν συμπεριλάβετε αυτές τις αγκύλες ενώ γράφετε το πρόγραμμά σας, θα εμφανιστεί σφάλμα χρόνου μεταγλώττισης. Ο λόγος είναι γιατί ! είναι ένας unary χειριστής που ενεργεί υπό έναν όρο. Χωρίς τις αγκύλες, ο μεταγλωττιστής θα το ερμηνεύσει ως τον τελεστή που ενεργεί στο x και όχι στο x> 5.

Η συμπερίληψη παρενθέσεων δεν είναι μόνο για να μπορέσει ο μεταγλωττιστής να ερμηνεύσει σωστά μια έκφραση. Μπορούν επίσης να χρησιμοποιηθούν ως τρόπος για να κατανοήσει καλύτερα ο προγραμματιστής πιο πολύπλοκες εκφράσεις. Δείτε το παρακάτω παράδειγμα:

age >= 7 && height <5

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

(age >= 7) && (height <5)

Σχετικοί χειριστές

Αυτοί οι τελεστές χρησιμοποιούνται για τη σύγκριση απλών σχέσεων μεταξύ τελεστών.

ΧειριστήςΟνομα
>>Μεγαλύτερος από
<Λιγότερο από
> =Μεγαλύτερο ή ίσο με
<=Λιγότερο ή ίσο με

Οι σχεσιακοί τελεστές είναι μάλλον εύκολο να κατανοηθούν γιατί όλοι έχουν την ίδια σημασία με τους συνηθισμένους αλγεβρικούς τελεστές που γνωρίζετε ήδη. Δηλαδή, >> και < έχουν την ίδια σημασία που γνωρίζετε ήδη με αυτήν που δίνεται στον παραπάνω πίνακα.

if( x <= 7 ){
x++;
}

Τα παραπάνω αν η δήλωση ελέγχει αν το x είναι μικρότερο ή ίσο με 7. Αν είναι αληθές, τότε εκτελούνται οι δηλώσεις μέσα στις αγκύλες, αλλιώς όχι.

Τώρα θα ήταν μια καλή στιγμή να αναφέρουμε τους φορείς ισότητας. Υπάρχουν μόνο δύο από αυτά (ίσα, == και! =, Όχι ίσα με). Όπως υποδηλώνει το όνομά τους, χρησιμοποιούνται για τον έλεγχο της ισότητας μεταξύ δύο τελεστών.

Σχετίζεται με: Πώς να δημιουργήσετε και να εκτελέσετε λειτουργίες σε πίνακες σε Java

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

Ο τελεστής εκχώρησης (=) εκχωρεί μια τιμή σε μια μεταβλητή ενώ ο τελεστής ισότητας (==) ελέγχει την ισότητα. Δείτε το παρακάτω παράδειγμα για να καταλάβετε τη διαφορά:

if(x=5){
// statements
}

Ο παραπάνω κώδικας θα εκτελείται πάντα ανεξάρτητα από το αν το x είναι όντως ίσο με 5. Εν τω μεταξύ, ο παρακάτω κώδικας θα εκτελεστεί μόνο εάν το x είναι ίσο με το 5. Επομένως, είναι σημαντικό να μην αναμειγνύονται τα δύο.

if(x==5){
// statements
}

Οι δύο τελεστές ισότητας που αναφέρονται έχουν το ίδιο επίπεδο προτεραιότητας, αν και χαμηλότερο από αυτό των σχεσιακών τελεστών.

Οι σχετικοί τελεστές έχουν επίσης το ίδιο επίπεδο προτεραιότητας. Η εκτέλεση αυτών των τελεστών ξεκινά από αριστερά προς τα δεξιά.

Περαιτέρω εκτιμήσεις των τελεστών Java

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

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

Y>=7 // no whitespace
Y >= 7 // with whitespace

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

Είναι επίσης σημαντικό να σημειωθεί ότι οι λογικοί τελεστές (|, &, ^) μπορούν να είναι δυαδικοί τελεστές όταν έχουν ολοκληρωμένους τελεστές. Όταν χρησιμοποιούνται ως δυαδικοί τελεστές, θα λειτουργούν στα bits των τελεστών τους.

Με αυτή τη γνώση των τελεστών, θα πρέπει τώρα να προετοιμαστείτε για να μάθετε μαθήματα Java.

Μερίδιο Μερίδιο Τιτίβισμα ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ Μάθετε πώς να δημιουργείτε τάξεις σε Java

Εάν μαθαίνετε να προγραμματίζετε σε Java, θα πρέπει να γνωρίζετε πώς να δημιουργείτε τάξεις.

Διαβάστε Επόμενο
Σχετικά θέματα
  • Προγραμματισμός
  • Ιάβα
  • Φροντιστήρια κωδικοποίησης
Σχετικά με τον Συγγραφέα Τζερόμ Ντέιβιντσον(Δημοσιεύθηκαν 22 άρθρα)

Ο Jerome είναι Staff Writer στο MakeUseOf. Καλύπτει άρθρα σχετικά με τον Προγραμματισμό και το Linux. Είναι επίσης λάτρης των κρυπτογράφησης και παρακολουθεί πάντα τη βιομηχανία κρυπτογράφησης.

Περισσότερα από τον Jerome Davidson

Εγγραφείτε στο newsletter μας

Εγγραφείτε στο ενημερωτικό μας δελτίο για τεχνικές συμβουλές, κριτικές, δωρεάν ebooks και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για εγγραφή