logo

Pogojni operator v C

Pogojni operator je znan tudi kot a ternarni operater . Pogojni stavki so stavki za odločanje, ki so odvisni od izhoda izraza. Predstavljen je z dvema simboloma, npr. '?' in ':'.

Ker pogojni operator deluje na treh operandih, je znan tudi kot ternarni operator.

Obnašanje pogojnega operatorja je podobno ' če potem ' kot izjava 'če-sicer' je tudi izjava o odločanju.

Sintaksa pogojnega operatorja

 Expression1? expression2: expression3; 

Slikovni prikaz zgornje sintakse je prikazan spodaj:

Pogojni operator v C

Pomen zgornje sintakse.

  • V zgornji sintaksi je izraz1 logični pogoj, ki je lahko vrednost true ali false.
  • Če je rezultat izraza1 prava vrednost, se bo izvršil izraz2.
  • Za izraz2 pravimo, da je resničen le, če vrne vrednost, ki ni enaka nič.
  • Če izraz1 vrne napačno vrednost, se bo izvršil izraz3.
  • Za izraz3 velja, da je napačen le, če vrne vrednost nič.

Razumejmo ternarni ali pogojni operator na primeru.

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

V zgornji kodi jemljemo vnos kot 'starost' uporabnika. Po vnosu smo pogoj uporabili s pogojnim operatorjem. V tem stanju preverjamo starost uporabnika. Če je starost uporabnika večja od ali enaka 18, se bo izvršil stavek1, tj. (printf('upravičen do glasovanja')), sicer pa se bo izvedel stavek2, tj. (printf('ni upravičen do glasovanja')) ).

Opazujmo rezultat zgornjega programa.

Če podamo starost uporabnika, mlajšega od 18 let, bi bil rezultat:

Pogojni operator v C

Če podamo starost uporabnika nad 18 let, bi bil rezultat:

Pogojni operator v C

Kot lahko opazimo iz zgornjih dveh izhodov, če je pogoj resničen, se izvede stavek1; sicer bo izveden stavek2.

Do sedaj smo opazovali, kako pogojni operater preverja pogoj in na podlagi pogoja izvaja stavke. Zdaj si bomo ogledali, kako se pogojni operator uporablja za dodelitev vrednosti spremenljivki.

orodna vrstica za hitri dostop ms word

Razumejmo ta scenarij na primeru.

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

V zgornji kodi smo deklarirali dve spremenljivki, tj. 'a' in 'b', in spremenljivki 'a' dodelili vrednost 5. Po deklaraciji dodeljujemo vrednost spremenljivki 'b' s pomočjo pogojnega operaterja. Če je vrednost 'a' enaka 5, potem je 'b' dodeljena vrednost 3, sicer 2.

Izhod

Pogojni operator v C

Zgornji izhod kaže, da je vrednost spremenljivke 'b' 3, ker je vrednost spremenljivke 'a' enaka 5.

Kot vemo, je vedenje pogojnega operatorja in 'if-else' podobno, vendar imata nekaj razlik. Poglejmo njihove razlike.

  • Pogojni operator je en sam programski stavek, medtem ko je stavek 'if-else' programski blok, v katerem so stavki v oklepaju.
  • Pogojni operator lahko uporabite tudi za dodelitev vrednosti spremenljivki, medtem ko stavka 'if-else' ni mogoče uporabiti za namen dodelitve.
  • Ni uporaben za izvajanje stavkov, ko je stavkov več, medtem ko se stavek 'if-else' izkaže za primernejšega pri izvajanju več stavkov.
  • Ugnezdeni ternarni operator je bolj zapleten in ga ni mogoče zlahka odpraviti, medtem ko je ugnezdeni stavek 'if-else' enostaven za branje in vzdrževanje.