Σε αυτό το σεμινάριο, θα μάθουμε για τον τριμερή χειριστή στο C ++ με τη βοήθεια παραδειγμάτων.
Στο C ++, ο τριαδικός τελεστής (επίσης γνωστός ως τελεστής υπό όρους ) μπορεί να χρησιμοποιηθεί για αντικατάσταση αν… αλλιώς σε συγκεκριμένα σενάρια.
Τερματικός χειριστής στο C ++
Ένας τρισδιάστατος τελεστής αξιολογεί την κατάσταση δοκιμής και εκτελεί ένα μπλοκ κώδικα με βάση το αποτέλεσμα της συνθήκης.
Η σύνταξή του είναι
condition ? expression1 : expression2;
Εδώ, condition
αξιολογείται και
- εάν
condition
είναιtrue
,expression1
εκτελείται. - Και, εάν
condition
είναιfalse
,expression2
εκτελείται.
Ο τριαδικός χειριστής παίρνει 3 τελεστές ( condition
, expression1
και expression2
). Ως εκ τούτου, το όνομα τριαδικός τελεστής .
Παράδειγμα: C ++ Ternary Operator
#include #include using namespace std; int main() ( double marks; // take input from users cout <> marks; // ternary operator checks if // marks is greater than 40 string result = (marks>= 40) ? "passed" : "failed"; cout << "You " << result << " the exam."; return 0; )
Έξοδος 1
Εισαγάγετε τις βαθμολογίες σας: 80 Περάσατε την εξέταση.
Ας υποθέσουμε ότι ο χρήστης μπαίνει στο 80 . Στη συνέχεια, η κατάσταση marks>= 40
αξιολογείται σε true
. Ως εκ τούτου, η πρώτη έκφραση "passed"
ανατίθεται στο αποτέλεσμα.
Έξοδος 2
Εισαγάγετε τις βαθμολογίες σας: 39.5 Αποτύχατε στην εξέταση
Τώρα, ας υποθέσουμε ότι ο χρήστης εισέρχεται 39.5 . Στη συνέχεια, η κατάσταση marks>= 40
αξιολογείται σε false
. Ως εκ τούτου, η δεύτερη έκφραση "failed"
ανατίθεται στο αποτέλεσμα.
Πότε να χρησιμοποιήσετε έναν Ternary Operator;
Στο C ++, ο τριαδικός τελεστής μπορεί να χρησιμοποιηθεί για την αντικατάσταση ορισμένων τύπων if… else
δηλώσεων.
Για παράδειγμα, μπορούμε να αντικαταστήσουμε αυτόν τον κωδικό
#include using namespace std; int main() ( // Create a variable int number = -4; if (number> 0) cout << "Positive Number"; else cout << "Negative Number!"; return 0; )
με
#include #include using namespace std; int main() ( int number = -4; string result; // Using ternary operator result = (number> 0) ? "Positive Number!" : "Negative Number!"; cout << result << endl; return 0; )
Παραγωγή
Αρνητικός αριθμός!
Εδώ, και τα δύο προγράμματα δίνουν την ίδια έξοδο. Ωστόσο, η χρήση του τριμερούς χειριστή καθιστά τον κωδικό μας πιο ευανάγνωστο και καθαρό.
Σημείωση: Θα πρέπει να χρησιμοποιήσουμε τον τριαδικό τελεστή μόνο εάν η δήλωση που προκύπτει είναι σύντομη.
Χειριστές Nested Ternary
Είναι επίσης δυνατό να χρησιμοποιήσετε έναν τριμερή χειριστή μέσα σε έναν άλλο τριμερή χειριστή. Ονομάζεται ένθετος τριαδικός τελεστής στο C ++.
Ακολουθεί ένα πρόγραμμα για να βρείτε εάν ένας αριθμός είναι θετικός, αρνητικός ή μηδέν χρησιμοποιώντας τον ένθετο τριμερή τελεστή.
#include #include using namespace std; int main() ( int number = 0; string result; // nested ternary operator to find whether // number is positive, negative, or zero result = (number == 0) ? "Zero" : ((number> 0) ? "Positive" : "Negative"); cout << "Number is " << result; return 0; )
Παραγωγή
Ο αριθμός είναι μηδέν
Στο παραπάνω παράδειγμα, παρατηρήστε τη χρήση τριαδικών τελεστών,
(number == 0) ? "Zero" : ((number> 0) ? "Positive" : "Negative");
Εδώ,
(number == 0)
είναι η πρώτη συνθήκη δοκιμής που ελέγχει εάν ο αριθμός είναι 0 ή όχι. Εάν είναι, τότε εκχωρεί την τιμή συμβολοσειράς"Zero"
στο αποτέλεσμα.- Διαφορετικά, η δεύτερη κατάσταση δοκιμής
(number> 0)
αξιολογείται εάν είναι η πρώτη συνθήκηfalse
.
Σημείωση : Δεν συνιστάται η χρήση ένθετων τριαδικών τελεστών. Αυτό συμβαίνει επειδή κάνει τον κώδικα μας πιο περίπλοκο.