Operator warunkowy lub trójskładnikowy (?:) w C

Operator warunkowy lub trójskładnikowy (?:) w C

The operator warunkowy w C jest trochę podobne do instrukcji if-else, ponieważ wykorzystuje ten sam algorytm, co instrukcja if-else, ale operator warunkowy zajmuje mniej miejsca i pomaga pisać instrukcje if-else w możliwie najkrótszy sposób. Znany jest również jako operator trójskładnikowy w C ponieważ działa na trzech operandach.

Składnia operatora warunkowego/trójskładnikowego w C

Operator warunkowy może mieć postać

 variable = Expression1  ?  Expression2  :  Expression3 ; 

Lub składnia może być również w tej formie

 variable = (condition)  ? Expression2  :  Expression3 ; 

Lub składnia może być również w tej formie

 (condition)  ?  (variable = Expression2)  :  (variable = Expression3) ; 
operator warunkowy lub potrójny w c

Operator warunkowy/trójskładnikowy w C

Można to zwizualizować w instrukcji if-else jako:

if(Expression1) { variable = Expression2; } else { variable = Expression3; } 

Ponieważ operator warunkowy „?:” wymaga do działania trzech operandów, dlatego są one również wywoływane operatory trójskładnikowe .

Uwaga: 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.

Działanie operatora warunkowego/trójskładnikowego w C

Działanie operatora warunkowego w C wygląda następująco:

    Krok 1: Wyrażenie 1 jest warunkiem do oceny. Krok 2A: Jeśli warunek ( Wyrażenie 1 ) jest zatem prawdą Wyrażenie2 zostanie wykonany. Krok 2B: Jeśli warunek ( Wyrażenie 1 ) jest zatem fałszywe Wyrażenie 3 zostanie wykonany. Krok 3: Wyniki zostaną zwrócone.

Schemat blokowy operatora warunkowego/trójskładnikowego w C

Aby lepiej zrozumieć działanie, możemy przeanalizować schemat działania operatora warunkowego podany poniżej.

schemat blokowy operatora warunkowego/trójskładnikowego w c

Schemat blokowy operatora warunkowego/trójskładnikowego w C

Przykłady operatora trójskładnikowego C

Przykład 1: Program w C przechowujący największą z dwóch liczb przy użyciu operatora trójskładnikowego

C




// C program to find largest among two> // numbers using ternary operator> > #include> > int> main()> {> > int> m = 5, n = 4;> > > (m>N) ?> printf> (> 'm is greater than n that is %d>%d'> ,> > m, n)> > :> printf> (> 'n is greater than m that is %d>%d'> ,> > n, m);> > > return> 0;> }>

Wyjście

m is greater than n that is 5>4 

Przykład 2: Program w C sprawdzający, czy dany rok jest rokiem przestępnym, przy użyciu operatora trójskładnikowego

C




// C program to check whether a year is leap year or not> // using ternary operator> > #include> > int> main()> {> > int> yr = 1900;> > > (yr%4==0) ? (yr%100!=0?> printf> (> 'The year %d is a leap year'> ,yr)> > : (yr%400==0 ?> printf> (> 'The year %d is a leap year'> ,yr)> > :> printf> (> 'The year %d is not a leap year'> ,yr)))> > :> printf> (> 'The year %d is not a leap year'> ,yr);> > return> 0;> }> > //This code is contributed by Susobhan AKhuli>

Wyjście

The year 1900 is not a leap year 

Wniosek

Operator warunkowy lub operator trójskładnikowy w C jest zwykle używany, gdy potrzebujemy krótkiego kodu warunkowego, na przykład przypisując wartość zmiennej na podstawie warunku. Można go używać w większych warunkach, ale spowoduje to, że program będzie bardzo skomplikowany i nieczytelny.

Często zadawane pytania dotyczące operatorów warunkowych/trójskładnikowych w C

1. Co to jest operator trójskładnikowy w C?

Operator trójskładnikowy w C jest operatorem warunkowym, który działa na trzech operandach. Działa podobnie do instrukcji if-else i wykonuje kod w oparciu o określony warunek. Nazywa się go także operatorem warunkowym

2. Jaka jest zaleta operatora warunkowego?

Zmniejsza linię kodu, gdy warunek i instrukcje są małe.