logo

Uvjetni operator u C

Uvjetni operator je također poznat kao a ternarni operator . Uvjetne izjave su izjave za donošenje odluka koje ovise o izlazu izraza. Predstavljaju ga dva simbola, tj. '?' i ':'.

Kako uvjetni operator radi na tri operanda, poznat je i kao ternarni operator.

Ponašanje uvjetnog operatora slično je ' ako-drugače ' izjava kao izjava 'if-else' također je izjava za donošenje odluke.

Sintaksa uvjetnog operatora

 Expression1? expression2: expression3; 

Slikovni prikaz gornje sintakse prikazan je u nastavku:

Uvjetni operator u C

Značenje gornje sintakse.

  • U gornjoj sintaksi, izraz1 je Booleov uvjet koji može biti istinita ili lažna vrijednost.
  • Ako izraz1 rezultira istinitom vrijednošću, tada će se izvršiti izraz2.
  • Za izraz2 se kaže da je istinit samo kada vraća vrijednost različitu od nule.
  • Ako izraz1 vrati lažnu vrijednost tada će se izvršiti izraz3.
  • Za izraz3 se kaže da je lažan samo kada vraća nultu vrijednost.

Razmotrimo ternarni ili uvjetni operator kroz primjer.

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

U gornjem kodu uzimamo unos kao 'dob' korisnika. Nakon unosa, primijenili smo uvjet korištenjem uvjetnog operatora. U ovom stanju provjeravamo dob korisnika. Ako je dob korisnika veća ili jednaka 18, tada će se izvršiti izjava1, tj. (printf('ima pravo glasa')) u suprotnom, izvršit će se izjava2, tj. (printf('nema pravo glasa') ).

Promotrimo izlaz gornjeg programa.

Ako navedemo dob korisnika ispod 18 godina, rezultat bi bio:

Uvjetni operator u C

Ako navedemo dob korisnika iznad 18 godina, rezultat bi bio:

Uvjetni operator u C

Kao što možemo primijetiti iz gornja dva izlaza, ako je uvjet istinit, onda se izjava1 izvršava; inače će se izvršiti iskaz2.

Do sada smo promatrali kako uvjetni operator provjerava uvjet i na temelju uvjeta izvršava izjave. Sada ćemo vidjeti kako se uvjetni operator koristi za dodjeljivanje vrijednosti varijabli.

pozivanje js funkcije iz html-a

Razmotrimo ovaj scenarij kroz primjer.

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

U gornjem kodu, deklarirali smo dvije varijable, tj. 'a' i 'b', i dodijelili vrijednost 5 varijabli 'a'. Nakon deklaracije, dodjeljujemo vrijednost varijabli 'b' korištenjem uvjetnog operatora. Ako je vrijednost 'a' jednaka 5 tada se 'b' dodjeljuje vrijednost 3 inače 2.

Izlaz

Uvjetni operator u C

Gornji izlaz pokazuje da je vrijednost varijable 'b' 3 jer je vrijednost varijable 'a' jednaka 5.

Kao što znamo, ponašanje uvjetnog operatora i 'if-else' je slično, ali imaju neke razlike. Pogledajmo njihove razlike.

  • Uvjetni operator je jedna programska naredba, dok je naredba 'if-else' programski blok u kojem se naredbe nalaze ispod zagrada.
  • Uvjetni operator također se može koristiti za dodjeljivanje vrijednosti varijabli, dok se izjava 'if-else' ne može koristiti za svrhu dodjele.
  • Nije koristan za izvršavanje naredbi kada su naredbe višestruke, dok se naredba 'if-else' pokazuje prikladnijom kada se izvršava više naredbi.
  • Ugniježđeni ternarni operator je složeniji i ne može se lako otkloniti pogrešaka, dok je ugniježđenu izjavu 'if-else' lako čitati i održavati.