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:
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:
Ako navedemo dob korisnika iznad 18 godina, rezultat bi bio:
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
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.