logo

Operator trójskładnikowy lub warunkowy C++

W C++, potrójny Lub operator warunkowy (? :) jest najkrótszą formą pisania instrukcji warunkowych. Można jej używać jako wbudowanej instrukcji warunkowej zamiast if-else w celu wykonania kodu warunkowego.

zablokowane kontakty

Składnia operatora trójskładnikowego ( ? :)

Składnia operatora trójskładnikowego (lub warunkowego) jest następująca:



expression   ?     statement_1     :     statement_2;>

Jak sama nazwa wskazuje, operator trójskładnikowy działa na trzech operandach gdzie

  • wyrażenie: Stan do oceny.
  • oświadczenie_1 : Instrukcja, która zostanie wykonana, jeśli wyrażenie zwróci wartość true.
  • oświadczenie_2: Kod, który ma zostać wykonany, jeśli wyrażenie ma wartość false.

// obraz

Powyższa instrukcja operatora trójskładnikowego jest równoważna instrukcji if-else podanej poniżej:



  if   ( condition ) {     statement1;  }   else   {    statement2;  }>

Przykład operatora trójskładnikowego w C++

C++






// C++ program to illustrate the use of ternary operator> #include> using> namespace> std;> > int> main()> {> > >// creating a variable> >int> num, test = 40;> > >// assigning the value of num based on the value of test> >// variable> >num = test <10 ? 10 : test + 10;> > >printf>(>'Num - Test = %d'>, num - test);> > >return> 0;> }>

>

>

Wyjście

xor c++
Num - Test = 10>

W powyższym kodzie użyliśmy operatora trójskładnikowego do przypisania wartości zmiennej na jednego w zależności od wartości innej zmiennej o nazwie test.

Notatka: Operator trójskładnikowy ma trzeci najniższy priorytet, dlatego musimy używać wyrażeń w taki sposób, aby uniknąć błędów wynikających z niewłaściwego zarządzania pierwszeństwem operatorów.

Zagnieżdżony operator trójskładnikowy C++

Zagnieżdżony operator trójskładnikowy definiuje się jako użycie operatora trójskładnikowego wewnątrz innego operatora trójskładnikowego. Podobnie jak instrukcje if-else, operator trójskładnikowy może być również zagnieżdżany jeden w drugim.

Przykład zagnieżdżenia operatora trójskładnikowego w C++

W poniższym kodzie największą z trzech liczb znajdziemy za pomocą zagnieżdżonego operatora trójskładnikowego.

C++




// C++ program to find the largest of the three number using> // ternary operator> #include> using> namespace> std;> > int> main()> {> > >// Initialize variable> >int> A = 39, B = 10, C = 23;> > >// Evaluate largest of three using ternary operator> >int> maxNum> >= (A>B) ? ((A> C) ? A: C): ((B> C) ? B: C);> > >cout <<>'Largest number is '> << maxNum << endl;> > >return> 0;> }>

>

>

Java otwiera plik
Wyjście

Largest number is 39>

Jak widzimy, możliwe jest zagnieżdżanie operatorów trójskładnikowych w sobie, ale kod jest skomplikowany w czytaniu i zrozumieniu. Dlatego generalnie unika się używania zagnieżdżonych operatorów trójskładnikowych.

Co więcej, operatora trójskładnikowego należy używać tylko w przypadku krótkiego kodu warunkowego. W przypadku większego kodu preferowane powinny być inne instrukcje warunkowe.