Operator trójargumentowy C ++ (z przykładami)

W tym samouczku dowiemy się o operatorze trójskładnikowym w C ++ na podstawie przykładów.

W C ++ operator trójskładnikowy (znany również jako operator warunkowy ) może być używany do zastępowania if… else w pewnych scenariuszach.

Operator trójargumentowy w C ++

Operator trójskładnikowy ocenia warunek testu i wykonuje blok kodu na podstawie wyniku warunku.

Jego składnia to

 condition ? expression1 : expression2;

Tutaj conditionjest oceniany i

  • jeśli conditionjest true, expression1jest wykonywany.
  • A jeśli conditiontak false, expression2jest wykonywany.

Operator trójskładnikowego bierze 3 operandy ( condition, expression1i expression2). Stąd nazwa operatora trójskładnikowego .

Przykład: operator trójskładnikowy C ++

 #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; )

Wyjście 1

 Wpisz swoje oceny: 80 Zdałeś egzamin.

Załóżmy, że użytkownik wprowadza 80 . Następnie warunek zostanie marks>= 40oceniony jako true. Stąd pierwsze wyrażenie "passed"jest przypisane do wyniku.

Wyjście 2

 Wpisz swoje oceny: 39,5 Nie zdałeś egzaminu.

Teraz załóżmy, że użytkownik wprowadzi 39,5 . Następnie warunek zostanie marks>= 40oceniony jako false. W związku z tym "failed"do wyniku przypisane jest drugie wyrażenie .

Kiedy używać trójskładnikowego operatora?

W C ++ operator trójskładnikowy może służyć do zastępowania niektórych typów if… elseinstrukcji.

Na przykład możemy zastąpić ten kod

 #include using namespace std; int main() ( // Create a variable int number = -4; if (number> 0) cout << "Positive Number"; else cout << "Negative Number!"; return 0; )

z

 #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; )

Wynik

 Liczba ujemna!

Tutaj oba programy dają ten sam wynik. Jednak użycie operatora trójskładnikowego sprawia, że ​​nasz kod jest bardziej czytelny i czysty.

Uwaga: Powinniśmy używać operatora trójargumentowego tylko wtedy, gdy wynikowa instrukcja jest krótka.

Zagnieżdżone operatory trójskładnikowe

Możliwe jest również użycie jednego operatora trójskładnikowego wewnątrz innego operatora trójskładnikowego. Nazywa się to zagnieżdżonym operatorem trójskładnikowym w C ++.

Oto program służący do sprawdzania, czy liczba jest dodatnia, ujemna czy zero, przy użyciu zagnieżdżonego operatora trójskładnikowego.

 #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; )

Wynik

 Liczba to zero

W powyższym przykładzie zwróć uwagę na użycie operatorów trójskładnikowych,

 (number == 0) ? "Zero" : ((number> 0) ? "Positive" : "Negative");

Tutaj,

  • (number == 0)to pierwszy warunek testowy, który sprawdza, czy liczba jest równa 0, czy nie. Jeśli tak, to przypisuje wartość ciągu "Zero"do wyniku.
  • W przeciwnym razie drugi warunek testowy (number> 0)jest oceniany, jeśli pierwszy warunek jest false.

Uwaga : nie zaleca się używania zagnieżdżonych operatorów trójskładnikowych. Dzieje się tak, ponieważ sprawia, że ​​nasz kod jest bardziej złożony.

Interesujące artykuły...