logo

Operator condiționat în C

Operatorul condiționat este cunoscut și sub numele de a operator ternar . Declarațiile condiționate sunt declarațiile de luare a deciziilor care depind de rezultatul expresiei. Este reprezentat de două simboluri, adică „?” și ':'.

Deoarece operatorul condiționat funcționează pe trei operanzi, deci este cunoscut și ca operator ternar.

Comportamentul operatorului condiționat este similar cu „ dacă-altfel declarația ca „dacă altfel” este, de asemenea, o declarație de luare a deciziilor.

Sintaxa unui operator condiționat

 Expression1? expression2: expression3; 

Reprezentarea picturală a sintaxei de mai sus este prezentată mai jos:

Operator condiționat în C

Sensul sintaxei de mai sus.

  • În sintaxa de mai sus, expresia1 este o condiție booleană care poate fi o valoare adevărată sau falsă.
  • Dacă expresia1 rezultă într-o valoare adevărată, atunci expresia2 se va executa.
  • Se spune că expresia2 este adevărată numai atunci când returnează o valoare diferită de zero.
  • Dacă expresia1 returnează o valoare falsă, atunci expresia3 se va executa.
  • Se spune că expresia3 este falsă numai atunci când returnează valoarea zero.

Să înțelegem operatorul ternar sau condiționat printr-un exemplu.

 #include int main() { int age; // variable declaration printf('Enter your age'); scanf('%d',&age); // taking user input for age variable (age>=18)? (printf('eligible for voting')) : (printf('not eligible for voting')); // conditional operator return 0; } 

În codul de mai sus, luăm intrarea drept „vârsta” utilizatorului. După preluarea introducerii, am aplicat condiția utilizând un operator condiționat. În această stare, verificăm vârsta utilizatorului. Dacă vârsta utilizatorului este mai mare sau egală cu 18 ani, atunci declarația1 se va executa, adică (printf(„eligibil pentru vot”)) în caz contrar, instrucțiunea2 se va executa, adică (printf(„nu este eligibil pentru vot”) ).

Să observăm rezultatul programului de mai sus.

Dacă furnizăm vârsta utilizatorului sub 18 ani, atunci rezultatul ar fi:

Operator condiționat în C

Dacă furnizăm vârsta utilizatorului peste 18 ani, atunci rezultatul ar fi:

Operator condiționat în C

După cum putem observa din cele două rezultate de mai sus că, dacă condiția este adevărată, atunci instrucțiunea1 este executată; în caz contrar, instrucțiunea 2 va fi executată.

Până acum, am observat că modul în care operatorul condiționat verifică condiția și, în funcție de condiție, execută instrucțiunile. Acum, vom vedea cum se folosește un operator condiționat pentru a atribui valoarea unei variabile.

șir de concatenare java

Să înțelegem acest scenariu printr-un exemplu.

 #include int main() { int a=5,b; // variable declaration b=((a==5)?(3):(2)); // conditional operator printf('The value of 'b' variable is : %d',b); return 0; } 

În codul de mai sus, am declarat două variabile, adică „a” și „b”, și atribuim 5 valoare variabilei „a”. După declarație, atribuim valoare variabilei „b” folosind operatorul condiționat. Dacă valoarea lui „a” este egală cu 5, atunci „b” este atribuită cu o valoare 3, în caz contrar, 2.

Ieșire

Operator condiționat în C

Rezultatul de mai sus arată că valoarea variabilei „b” este 3, deoarece valoarea variabilei „a” este egală cu 5.

După cum știm că comportamentul operatorului condiționat și „if-else” este similar, dar au unele diferențe. Să ne uităm la diferențele lor.

  • Un operator condiționat este o singură instrucțiune de programare, în timp ce instrucțiunea „if-else” este un bloc de programare în care instrucțiunile sunt sub paranteză.
  • Un operator condiționat poate fi folosit și pentru a atribui o valoare variabilei, în timp ce instrucțiunea „if-else” nu poate fi utilizată în scopul atribuirii.
  • Nu este utilă pentru executarea instrucțiunilor atunci când instrucțiunile sunt multiple, în timp ce instrucțiunea „if-else” se dovedește mai potrivită atunci când se execută mai multe instrucțiuni.
  • Operatorul ternar imbricat este mai complex și nu poate fi ușor depanat, în timp ce declarația imbricată „if-else” este ușor de citit și de întreținut.