Tingimuslaused C-s: If, Else, Nested If näitega
⚡ Nutikas kokkuvõte
C-keele tingimuslaused kontrollivad programmi voogu, käivitades koodiplokke ainult siis, kui testitud tingimus annab tulemuseks tõese tulemuse, võimaldades otsuste langetamist if, if-else, pesastatud ja else-if redelkonstruktsioonide abil.

Mis on tingimuslause C-s?
C-keeles kasutatakse tingimuslauseid otsuste langetamiseks tingimuste põhjal. Tingimuslaused täidetakse järjestikku, kui lausete ümber pole tingimust. Kui lauseplokile on seatud mingi tingimus, võib täitmisvoog muutuda tingimuse poolt hinnatud tulemuse põhjal. Seda protsessi nimetatakse C-keeles otsuste langetamiseks.
Erinevalt tsüklid C-s mis korduvat koodi, tingimuslaused valivad ühe tee.
'C' programmeerimisel on tingimuslaused võimalikud kahe järgmise konstruktsiooni abil:
- Kui avaldus
- If-else lause
Seda nimetatakse ka hargnemiseks, kuna programm otsustab hinnatud tingimuse tulemuse põhjal, millist lauset täita.
Kui avaldus
See on üks võimsamaid tingimuslauseid. If avaldus vastutab programmi täitmise voo muutmise eest. Kui lauset kasutatakse alati tingimusega. Tingimust hinnatakse kõigepealt enne mis tahes avalduse täitmist Ifi kehas. If-lause süntaks on järgmine:
if (condition)
instruction;
Tingimust hinnatakse kas tõeseks või vääraks. Tõene on alati nullist erinev väärtus ja väär on väärtus, mis sisaldab nulli. Juhised võivad olla üks käsk või koodiplokk, mis on ümbritsetud lokkis sulgudega { }.
Järgmine programm illustreerib if-konstruktsiooni kasutamist "C" programmeerimisel:
#include<stdio.h> int main() { int num1=1; int num2=2; if(num1<num2) //test-condition { printf("num1 is smaller than num2"); } return 0; }
Väljund:
num1 is smaller than num2
Ülaltoodud programm illustreerib if-konstruktsiooni kasutamist kahe arvu võrdsuse kontrollimiseks.
- Ülaltoodud programmis oleme lähtestanud kaks muutujat numbritega num1, num2 väärtusega vastavalt 1, 2.
- Seejärel kasutasime test-avaldisega if-i, et kontrollida, milline arv on väikseim ja milline suurim. Oleme kasutanud relatsiooniavaldist if-konstruktsioonis. Kuna num1 väärtus on väiksem kui num2, hinnatakse tingimust tõeseks.
- Seega prindib see avalduse Ifi ploki sisse. Pärast seda läheb juhtimine blokist välja ja programm lõpetatakse eduka tulemusega.
Suhteline Operatorse
C-keeles on kuus relatsioonioperaatorit, mida saab kasutada otsuste tegemiseks ja tingimuste testimiseks mõeldud Boole'i avaldise formuleerimiseks, mis tagastab väärtuse tõene või väär:
<— vähem kui<=— väiksem või võrdne>— suurem kui>=— suurem või võrdne==— võrdne!=— mitte võrdne
Pange tähele, et võrdne test (==) erineb määramise operaatorist (=), kuna see on üks levinumaid probleeme, millega programmeerija neid segades kokku puutub.
Näiteks:
int x = 41; x =x+ 1; if (x == 42) { printf("You succeed!");}
Väljund:
You succeed
Pidage meeles, et tingimust, mille väärtus on nullist erinev, loetakse tõeseks.
Näiteks:
int present = 1; if (present) printf("There is someone present in the classroom \n");
Väljund:
There is someone present in the classroom
If-Else avaldus
if-else lause on If lause laiendatud versioon. if-else lause üldine kuju on järgmine:
if (test-expression)
{
True block of statements
}
Else
{
False block of statements
}
Statements;
Seda tüüpi konstruktsiooni puhul, kui test-avaldise väärtus on tõene, siis käivitatakse lauseplokk „tõene“. Kui test-avaldise väärtus on väär, siis käivitatakse lauseplokk „väär“. Igal juhul kantakse pärast käivitamist juhtimine automaatselt üle lausetele, mis asuvad väljaspool If-lause plokki.
Järgmised programmid illustreerivad konstruktsiooni if-else kasutamist:
Initsialiseerime muutuja mõne väärtusega ja kirjutame programmi, mis määrab, kas väärtus on väiksem kui kümme või suurem kui kümme.
Alustame.
#include<stdio.h> int main() { int num=19; if(num<10) { printf("The value is less than 10"); } else { printf("The value is greater than 10"); } return 0; }
Väljund:
The value is greater than 10
- Oleme initsialiseerinud muutuja väärtusega 19. Peame programmi C abil välja selgitama, kas arv on suurem või väiksem kui 10. Selleks oleme kasutanud if-else konstruktsiooni.
- Siin oleme esitanud tingimuse num<10, kuna peame oma väärtust võrdlema 10-ga.
- Nagu näete, on esimene plokk alati tõene plokk, mis tähendab, et kui test-avaldise väärtus on tõene, siis käivitatakse esimene plokk, mis on If.
- Teine plokk on muu plokk. See plokk sisaldab avaldusi, mis käivitatakse, kui test-avaldise väärtus muutub vääraks. Meie programmis on num väärtus suurem kui kümme, seega muutub testitingimus vääraks ja vastasel juhul käivitatakse plokk. Seega pärineb meie väljund muust plokist, mis on "Väärtus on suurem kui 10". Pärast kui-muidu programm lõppeb eduka tulemusega.
"C" programmeerimises saame kasutada üksteise sees mitut if-else konstruktsiooni, mida nimetatakse if-else lausete pesastamiseks.
Tingimuslikud väljendid
Teine viis if-else lause väljendamiseks on ?: operaatori kasutuselevõtt. Tingimusavaldises on ?: operaatoril ainult üks lause, mis on seotud if ja else operaatoritega.
Näiteks:
#include <stdio.h> int 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;}
Väljund:
y =2
Pesastatud If-else avaldused
Kui on vaja otsustada, kasutatakse pesastatud if-else. Pesastamine tähendab ühe if-else konstruktsiooni kasutamist teises.
Kirjutame programmi, mis illustreerib pesastatud if-else kasutamist.
#include<stdio.h> int 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; }
Väljund:
The value is:1
Ülaltoodud programm kontrollib, kas arv on väiksem või suurem kui 10, ja prindib tulemuse kasutades pesastatud if-else konstruktsiooni.
- Esiteks oleme deklareerinud muutuja num väärtusega 1. Seejärel kasutasime if-else konstruktsiooni.
- Välimises if-else atribuudis kontrollib antud tingimus, kas arv on väiksem kui 10. Kui tingimus on tõene, siis ja ainult siis käivitatakse sisemine plokk. Sel juhul on tingimus tõene ja seega töödeldakse sisemist plokki.
- Sisemises plokis on meil jälle tingimus, mis kontrollib, kas meie muutuja sisaldab väärtust 1 või mitte. Kui tingimus on tõene, siis töödeldakse If-plokki, vastasel juhul else-plokki. Sel juhul on tingimus tõene, seega If-plokk käivitatakse ja väärtus prinditakse väljundekraanile.
- Ülaltoodud programm prindib muutuja väärtuse ja väljub edukalt.
Proovige väärtust muuta muutuja vaata, kuidas programm käitub.
MÄRKUS: Pesastatud if-else puhul peame taandega olema ettevaatlikud, kuna selles protsessis on kaasatud mitu if-else konstruktsiooni, mistõttu on üksikute konstruktsioonide väljaselgitamine keeruline. Õige taane muudab programmi lugemise lihtsaks.
Pesastatud Else-if avaldused
Pesastatud else-if kasutatakse siis, kui on vaja teha mitmeteelisi otsuseid.
Üldine süntaks selle kohta, kuidas C-programmeerimisel redelid muul viisil konstrueeritakse, on järgmine:
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;
Seda tüüpi struktuuri tuntakse else-if-redelina. See ahel näeb üldiselt välja nagu redel, seega nimetatakse seda ka else-if-redeliks. Testavaldisi hinnatakse ülevalt alla. Kui leitakse tõene testavaldis, käivitatakse sellega seotud lause. Kui kõik n testavaldist muutuvad vääraks, käivitatakse vaikimisi else-lause.
Vaatame programmi abil tegelikku tööd.
#include<stdio.h> int 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; }
Väljund:
First class
Ülaltoodud programm prindib hinde vastavalt testis saadud hinnetele. Oleme ülaltoodud programmis kasutanud konstruktsiooni else-if redel.
- Oleme initsialiseerinud muutuja märkidega. Elu-if-redelstruktuuris oleme pakkunud erinevaid tingimusi.
- Muutuja märkide väärtust võrreldakse esimese tingimusega, kuna see on tõsi, sellega seotud väide trükitakse väljundekraanile.
- Kui esimene katsetingimus osutub valeks, võrreldakse seda teise tingimusega.
- See protsess jätkub seni, kuni kõik avaldised on hinnatud, vastasel juhul läheb juhtimine välja else-if redelist ja trükitakse vaikelause.
Proovige väärtust muuta ja märkige väljundi muutust.





