Što je uvjetna izjava u C?
Uvjetne izjave u programiranju na C koriste se za donošenje odluka na temelju uvjeta. Uvjetni se izrazi izvršavaju uzastopno kada oko uvjeta ne postoji uvjet. Ako stavite neki uvjet za blok izraza, tijek izvršavanja može se promijeniti na temelju rezultata koji je procijenio uvjet. Taj se postupak naziva donošenje odluka u 'C.'
U programiranju 'C' mogući su uvjetni izrazi uz pomoć sljedeće dvije konstrukcije:
1. Ako izjava
2. Izjava if-else
Također se naziva grananjem jer program odlučuje koju će naredbu izvršiti na temelju rezultata procijenjenog stanja.
U ovom vodiču naučit ćete-
- Što je uvjetna izjava?
- Ako izjava
- Relacijski operateri
- Izjava If-Else
- Uvjetni izrazi
- Ugnježdene izjave ako-drugo
- Ugniježdene izjave Else-if
Ako izjava
To je jedna od snažnih uvjetnih izjava. Ako je naredba odgovorna za modificiranje tijeka izvršavanja programa. Ako se naredba uvijek koristi s uvjetom. Stanje se prvo procjenjuje prije izvođenja bilo koje izjave unutar tijela datoteke If. Sintaksa izraza if je sljedeća:
if (condition)instruction;
Uvjet se procjenjuje na true ili false. True je uvijek vrijednost koja nije nula, a false vrijednost koja sadrži nulu. Upute mogu biti pojedinačne upute ili blok koda koji su zatvoreni zavojima {}.
Sljedeći program ilustrira upotrebu if konstrukta u 'C' programiranju:
#includeint main(){int num1=1;int num2=2;if(num1 Izlaz:
num1 is smaller than num2Gornji program ilustrira upotrebu if konstrukta za provjeru jednakosti dva broja.
- U gore navedenom programu inicijalizirali smo dvije varijable s num1, num2 s vrijednošću 1, 2.
- Zatim smo koristili if s test-izrazom da provjerimo koji je broj najmanji, a koji najveći. Koristili smo relacijski izraz u konstrukciji if. Budući da je vrijednost num1 manja od num2, stanje će se procijeniti na true.
- Tako će ispisati izjavu unutar bloka If. Nakon toga, kontrola će izaći izvan bloka i program će biti prekinut s uspješnim rezultatom.
Relacijski operateri
C ima šest relacijskih operatora koji se mogu koristiti za formuliranje logičkog izraza za donošenje odluke i uvjete ispitivanja, koji vraća true ili false:
<= manje ili jednako
> veće od
> = veće ili jednako
== jednako
! = nije jednako
Primijetite da se jednaki test (==) razlikuje od operatora dodjele (=) jer je to jedan od najčešćih problema s kojima se programer suočava miješajući ih.
Na primjer:
int x = 41;x =x+ 1;if (x == 42) {printf("You succeed!");}Izlaz:
You succeedImajte na umu da se uvjet koji procjenjuje na vrijednost različitu od nule smatra istinitim.
Na primjer:
int present = 1;if (present)printf("There is someone present in the classroom \n");Izlaz:
There is someone present in the classroomIzjava If-Else
Izjava if-else is proširena je inačica If. Opći oblik if-else je sljedeći:
if (test-expression){True block of statements}Else{False block of statements}Statements;U ovoj vrsti konstrukcije, ako je vrijednost test-izraza istinita, tada će se izvršiti true blok izraza. Ako je vrijednost test-expression ako false, izvršit će se false blok izraza. U svakom slučaju, nakon izvršenja, kontrola će se automatski prenijeti na izjave koje se pojavljuju izvan bloka If.
Sljedeći programi ilustriraju upotrebu konstrukcije if-else:
Inicijalizirat ćemo varijablu s nekom vrijednošću i napisati program da utvrdimo je li vrijednost manja od deset ili veća od deset.
Počnimo.
#includeint main(){int num=19;if(num<10){printf("The value is less than 10");}else{printf("The value is greater than 10");}return 0;} Izlaz:
The value is greater than 10
- Inicijalizirali smo varijablu s vrijednošću 19. Moramo saznati je li broj veći ili manji od 10 pomoću programa 'C'. Da bismo to učinili, koristili smo konstrukciju if-else.
- Ovdje smo dali uvjet broj <10 jer svoju vrijednost moramo usporediti s 10.
- Kao što vidite, prvi blok je uvijek istinit blok, što znači da će, ako je vrijednost test-expression tačna, biti izveden prvi blok koji je If.
- Drugi blok je else blok. Ovaj blok sadrži izraze koji će se izvršiti ako vrijednost test-izraza postane lažna. U našem programu vrijednost num je veća od deset, stoga test-uvjet postaje lažan, a inače se izvršava blok. Stoga ćemo izlaz dobiti iz bloka else koji je "Vrijednost je veća od 10". Nakon if-else, program će se završiti uspješnim rezultatom.
U 'C' programiranju možemo koristiti više međusobno konstruiranih if-else konstrukcija koje se nazivaju gniježđenjem if-else naredbi.
Uvjetni izrazi
Postoji još jedan način da izrazimo if-else izjavu uvođenjem operatora ?: . U uvjetnog izrazom : operater ima samo jednu izjavu povezan s ako i drugo.
Na primjer:
#includeint main() {int y;int x = 2;y = (x >= 6) ? 6 : x;/* This is equivalent to: if (x >= 5) y = 5; else y = x; */printf("y =%d ",y);return 0;} Izlaz:
y =2Ugnježdene izjave ako-drugo
Kada je potreban niz odluka, koristi se ugniježđeno if-else. Gniježđenje znači korištenje jedne konstrukcije if-else unutar druge.
Napišimo program koji će ilustrirati upotrebu ugniježđenih if-else.
#includeint main(){int num=1;if(num<10){if(num==1){printf("The value is:%d\n",num);}else{printf("The value is greater than 1");}}else{printf("The value is greater than 10");}return 0;} Izlaz:
The value is:1Gornji program provjerava je li broj manji ili veći od 10 i ispisuje rezultat pomoću ugniježđene konstrukcije if-else.
- Prvo smo proglasili varijablu num sa vrijednošću 1. Zatim smo koristili konstrukciju if-else.
- U vanjskom if-else naveden uvjet provjerava je li broj manji od 10. Ako je uvjet istinit, tada će i samo tada izvršiti unutarnju petlju. U ovom je slučaju uvjet istinit, stoga se obrađuje unutarnji blok.
- U unutarnjem bloku opet imamo uvjet koji provjerava sadrži li naša varijabla vrijednost 1 ili ne. Kada je uvjet istinit, tada će obraditi blok If, u suprotnom će obraditi blok else. U ovom je slučaju uvjet istinit, pa ako se izvrši blok i vrijednost se ispiše na izlaznom ekranu.
- Gornji program ispisat će vrijednost varijable i uspješno izaći.
Pokušajte promijeniti vrijednost varijable i pogledajte kako se program ponaša.
NAPOMENA: U ugniježđenim if-else moramo biti oprezni s uvlačenjem jer je višestruki if-else konstrukti uključeni u ovaj postupak, pa postaje teško dokučiti pojedinačne konstrukcije. Ispravno uvlačenje olakšava čitanje programa.
Ugniježdene izjave Else-if
Ugniježđeno else-if koristi se kada su potrebne odluke o više stazama.
Opća sintaksa kako se inače grade ljestve u programiranju 'C' je kako slijedi:
if (test - expression 1) {statement1;} else if (test - expression 2) {Statement2;} else if (test - expression 3) {Statement3;} else if (test - expression n) {Statement n;} else {default;}Statement x;Ova vrsta građevine poznata je kao ljestve else-if. Ovaj lanac općenito izgleda poput ljestvice, stoga se naziva i ljestvicom ako ne. Test-izrazi vrednuju se od vrha do dna. Kad god se istinski test-izraz ako se pronađe, izvrši izraz povezan s njim. Kada svih n test-izraza postane lažno, tada se izvršava zadana naredba else.
Pogledajmo stvarni rad uz pomoć programa.
#includeint main(){int marks=83;if(marks>75){printf("First class");}else if(marks>65){printf("Second class");}else if(marks>55){printf("Third class");}else{printf("Fourth class");}return 0;} Izlaz:
First classGornji program ispisuje ocjenu prema ocjenama postignutim na testu. U gornjem programu koristili smo konstrukciju ljestvice else-if.
- Inicijalizirali smo varijablu s oznakama. U strukturi ljestvice, ako ne, osigurali smo različite uvjete.
- Vrijednost oznaka varijable uspoređivat će se s prvim uvjetom jer je istina iskaz povezan s njom ispisan na izlaznom zaslonu.
- Ako se prvi ispitni uvjet pokaže neistinitim, uspoređuje se s drugim uvjetom.
- Ovaj će se postupak odvijati sve dok se ne procijeni sav izraz, u suprotnom će kontrola izaći iz ljestvice else-if i ispisat će se zadani izraz.
Pokušajte izmijeniti vrijednost i primijetiti promjenu u izlazu.
Sažetak
- Izjave za donošenje odluka ili grananje koriste se za odabir jednog puta na temelju rezultata evaluiranog izraza.
- Također se naziva i kontrolnim izjavama jer kontrolira tijek izvršavanja programa.
- 'C' daje if, if-else konstrukcije za izjave o donošenju odluka.
- Također se možemo ugnijezditi ako-inače jedan u drugom kad treba testirati više putova.
- Ljestvica else-if koristi se kada moramo provjeriti različite načine na temelju rezultata izraza.