1. Και (σύνδεσμος)
* σύμβολο: `&&` (c ++, java, javascript, php, c#, go, rust), `and` (Python, ruby),` &`(Pascal, VBA)
* Σκοπός: Επιστρέφει `true` if και τα δύο Οι τελεστές είναι «αληθινοί». Διαφορετικά, επιστρέφει «ψεύτικο».
* Πίνακας αλήθειας:
| Λειτουργία 1 | TOERAND 2 | Αποτέλεσμα |
| ----------- | ----------- | -------- |
| `true` | `true` | `true` |
| `true` | `false '| `false '|
| `false '| `true` | `false '|
| `false '| `false '| `false '|
* Παράδειγμα (javascript):
`` `javascript
Αφήστε την ηλικία =25;
ας Haslicense =true;
αν (ηλικία> =16 &&haslicense) {
console.log ("μπορεί νόμιμα να οδηγήσει")?
} αλλιώς {
console.log ("δεν μπορεί νόμιμα να οδηγήσει")?
}
`` `
Σε αυτή την περίπτωση, η κατάσταση «ηλικία> =16 &&haslicense» θα είναι μόνο «αληθινή» αν το άτομο είναι τουλάχιστον 16 * και * έχει άδεια.
2. Ή (Disjunction)
* σύμβολο: `||` (C ++, Java, Javascript, Php, C#, Go, Rust), `ή` (Python, Ruby), `|` (Pascal, VBA)
* Σκοπός: Επιστρέφει `true` if τουλάχιστον ένα των τελεστών είναι «αληθινό». Επιστρέφει "ψεύτικο" μόνο αν και οι δύο τελεστές είναι «ψευδείς».
* Πίνακας αλήθειας:
| Λειτουργία 1 | TOERAND 2 | Αποτέλεσμα |
| ----------- | ----------- | -------- |
| `true` | `true` | `true` |
| `true` | `false '| `true` |
| `false '| `true` | `true` |
| `false '| `false '| `false '|
* Παράδειγμα (Python):
`` `Python
θερμοκρασία =20
ISRAING =FALSE
Εάν θερμοκρασία <0 ή ισροτιμία:
εκτύπωση ("μείνε μέσα")
αλλού:
εκτύπωση ("Απολαύστε τον καιρό")
`` `
Το μήνυμα "Stay Inside" θα εκτυπωθεί εάν η θερμοκρασία είναι κάτω από 0 * ή * Βρέχει (ή και τα δύο).
3. Όχι (άρνηση)
* σύμβολο: `` `(C ++, java, javascript, php, c#, go, rust),` not` (python, ruby), `not '(pascal),` not` (vba)
* Σκοπός: Αναστρέφει την τιμή του boolean του τελετή. Εάν ο τελεστής είναι «αληθής», «δεν το κάνει« ψεύτικο »και αντίστροφα.
* Πίνακας αλήθειας:
| Τελεστής | Αποτέλεσμα |
| ---------- | --------- |
| `true` | `false '|
| `false '| `true` |
* Παράδειγμα (C ++):
`` c ++
bool isLoggedIn =false;
αν (! isLoggedIn) {
cout <<"Παρακαλώ συνδεθείτε" <
cout <<"Καλώς ήλθατε" <
`` `
Ο κώδικας ελέγχει εάν ο χρήστης δεν είναι * συνδεδεμένος (`! Isloggedin`).
4. Xor (αποκλειστικό ή)
* σύμβολο: `^` (C ++, java, javascript, php, c#, go, σκουριά), `xor` (pascal),` xor` (vba). Η Python απαιτεί τη χρήση `! =` Για να μιμηθεί το xor για booleans.
* Σκοπός: Επιστρέφει `true` if Ακριβώς ένα των τελεστών είναι «αληθινό». Επιστρέφει `ψευδές 'αν και οι δύο τελεστές είναι« αληθινές »ή και οι δύο τελεστές είναι« ψευδείς ». Με άλλα λόγια, οι τελεστές πρέπει να είναι διαφορετικοί.
* Πίνακας αλήθειας:
| Λειτουργία 1 | TOERAND 2 | Αποτέλεσμα |
| ----------- | ----------- | -------- |
| `true` | `true` | `false '|
| `true` | `false '| `true` |
| `false '| `true` | `true` |
| `false '| `false '| `false '|
* Παράδειγμα (PHP):
`` `php
$ isadult =true;
$ hasStudentDiscount =false;
αν ($ isadult ^ $ hasstudentDiscount) {
echo "επιλέξιμο για μερική έκπτωση.";
} αλλιώς {
echo "Δεν είναι επιλέξιμο για μερική έκπτωση.";
}
`` `
Αυτό το παράδειγμα απεικονίζει ένα σενάριο όπου είτε είναι ενήλικας *είτε *που έχει μια έκπτωση φοιτητών πληροί τις προϋποθέσεις για μια *μερική *έκπτωση, αλλά όχι *και τα δύο *.
5. Βραχυκύκλωμα
Πολλές γλώσσες προγραμματισμού εφαρμόζουν αξιολόγηση "βραχυκύκλωσης" για τους χειριστές «και» ή «ή». Αυτή η βελτιστοποίηση μπορεί να βελτιώσει την απόδοση και να αποτρέψει σφάλματα:
* και `(` &&`ή` και '): Εάν ο πρώτος τελεστής είναι «ψευδής», ολόκληρη η έκφραση είναι «ψεύτικη», οπότε ο δεύτερος τελεστής είναι * όχι * αξιολογείται.
* ή `(` || `ή` ή `): Εάν ο πρώτος τελεστής είναι «αληθής», ολόκληρη η έκφραση είναι «αληθινή», οπότε ο δεύτερος τελεστής δεν είναι * αξιολογημένος.
Παράδειγμα βραχυκυκλώματος (JavaScript):
`` `javascript
Έστω x =5;
ας είναι isValid =false;
αν (iSValid &&x ++> 0) {// x ++ αξιολογείται μόνο εάν το isValid είναι αλήθεια
console.log ("συνθήκη MET");
}
console.log (x); // Έξοδος:5 (x δεν αυξήθηκε)
`` `
Σε αυτή την περίπτωση, δεδομένου ότι το `isvalid` είναι` false ', `x ++> 0` δεν αξιολογείται ποτέ, οπότε το` x` παραμένει 5. Αυτό είναι σημαντικό εάν ο δεύτερος τελεστής έχει παρενέργειες (όπως η αύξηση μιας μεταβλητής) ή εάν η αξιολόγηση θα μπορούσε να οδηγήσει σε σφάλμα (π.χ., η διαίρεση με μηδέν).
Σημαντικές εκτιμήσεις:
* Προηγούμενο χειριστή: Οι λογικοί φορείς έχουν μια συγκεκριμένη προτεραιότητα σε σχέση με άλλους χειριστές (αριθμητική, σύγκριση κ.λπ.). Χρησιμοποιήστε τις παρενθέσεις `()` για να βεβαιωθείτε ότι οι εκφράσεις αξιολογούνται με τη σειρά που σκοπεύετε.
* Τύποι δεδομένων: Οι λογικοί χειριστές λειτουργούν συνήθως σε τιμές Boolean (αληθινές ή ψευδείς). Πολλές γλώσσες θα μετατρέψουν αυτόματα άλλους τύπους δεδομένων σε τιμές boolean που βασίζονται σε ορισμένους κανόνες (π.χ., 0 είναι ψευδές, το μη μηδέν είναι αληθές, η κενή συμβολοσειρά είναι ψευδής, η μη κενή συμβολοσειρά είναι αληθής). Να γνωρίζετε πώς χειρίζεται η γλώσσα σας αυτές τις μετατροπές.
* Bitwise χειριστές εναντίον λογικών χειριστών: Ορισμένες γλώσσες έχουν bitwise χειριστές (π.χ., `&`, `` `,`^`` `~` `σε c/c ++/java) που μοιάζουν με λογικούς φορείς. Οι χειριστές Bitwise εκτελούν εργασίες σε μεμονωμένα κομμάτια ακέραιων τιμών, ενώ οι λογικοί χειριστές εργάζονται σε τιμές boolean και επιστρέφουν τα αποτελέσματα boolean. Μην τους συγχέετε!
Με την κατανόηση και την αποτελεσματική χρήση λογικών χειριστών, μπορείτε να δημιουργήσετε πολύπλοκα και ισχυρά προγράμματα που ανταποκρίνονται έξυπνα σε διαφορετικές συνθήκες.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα