Mi a feltételes nyilatkozat C-ben?
A C programozás feltételes állításait a feltételek alapján hozzák meg. A feltételes állítások egymás után hajtódnak végre, ha az állítások körül nincs feltétel. Ha valamilyen feltételt ad egy utasításblokkhoz, akkor a végrehajtási folyamat a feltétel által értékelt eredmény alapján megváltozhat. Ezt a folyamatot döntéshozatalnak hívják C-ben.
A „C” programozásban feltételes utasítások lehetségesek a következő két konstrukció segítségével:
1. Ha állítás
2. Ha-más állítás
Elágazásnak is nevezik, mivel a program az értékelt feltétel eredménye alapján eldönti, hogy melyik utasítást hajtsa végre.
Ebben az oktatóanyagban megtanulja-
- Mi az a feltételes nyilatkozat?
- Ha állítás
- Relációs operátorok
- Az If-Else nyilatkozat
- Feltételes kifejezések
- Beágyazott If-else utasítások
- Beágyazott Else-if nyilatkozatok
Ha állítás
Ez az egyik hatalmas feltételes állítás. Az If utasítás felelős a program végrehajtásának folyamatáért. Ha az állítást mindig feltétel mellett használják. A feltételt először értékelik, mielőtt bármilyen utasítást végrehajtanának az If testében. Az if utasítás szintaxisa a következő:
if (condition)instruction;
Az állapot értéke igaz vagy hamis. Az Igaz mindig nem nulla érték, a hamis pedig nulla értéket tartalmaz. Az utasítások lehetnek egyetlen utasítások vagy göndör zárójelekkel ellátott kódblokkok {}.
A következő program szemlélteti az if konstrukció használatát a „C” programozásban:
#includeint main(){int num1=1;int num2=2;if(num1 Kimenet:
num1 is smaller than num2A fenti program szemlélteti az if konstrukció használatát két szám egyenlőségének ellenőrzésére.
- A fenti programban két változót inicializáltunk num1, num2 értékekkel, amelyek értéke 1, 2.
- Ezután teszt-kifejezéssel alkalmaztuk, hogy melyik szám a legkisebb és melyik a legnagyobb. Az if konstrukcióban használtunk relációs kifejezést. Mivel a num1 értéke kisebb, mint a num2, a feltétel igaz lesz.
- Így kinyomtatja az utasítást az If blokkjában. Ezt követően a vezérlés a blokkon kívülre kerül, és a program sikeres eredménnyel zárul.
Relációs operátorok
A C-nek hat relációs operátora van, amelyek felhasználhatók egy logikai kifejezés megfogalmazására a döntéshozáshoz és a tesztelési feltételekhez, amelyek igazak vagy hamisak:
<= kisebb vagy egyenlő
> nagyobb, mint
> = nagyobb vagy egyenlő
== egyenlő
! = nem egyenlő
Figyelje meg, hogy az egyenlő teszt (==) különbözik a hozzárendelés operátorától (=), mert ez az egyik leggyakoribb probléma, amellyel egy programozó szembesül azáltal, hogy összekeveri őket.
Például:
int x = 41;x =x+ 1;if (x == 42) {printf("You succeed!");}Kimenet :
You succeedNe feledje, hogy egy feltétel, amely nem nulla értékre értékel, igaznak tekintendő.
Például:
int present = 1;if (present)printf("There is someone present in the classroom \n");Kimenet :
There is someone present in the classroomAz If-Else nyilatkozat
Az if-else is utasítás az If kiterjesztett változata. Az if-else általános formája a következő:
if (test-expression){True block of statements}Else{False block of statements}Statements;n egy ilyen típusú konstrukció, ha a teszt-kifejezés értéke igaz, akkor az utasítások valós blokkja kerül végrehajtásra. Ha a test-kifejezés értéke hamis, akkor az utasítások hamis blokkja kerül végrehajtásra. Mindenesetre a végrehajtás után a vezérlés automatikusan átkerül az If blokkján kívül megjelenő utasításokba.
A következő programok szemléltetik az if-else konstrukció használatát:
Inicializálunk egy változót valamilyen értékkel, és programot írunk annak megállapítására, hogy az érték tíznél kisebb vagy nagyobb-e, mint tíz.
Kezdjük.
#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;} Kimenet:
The value is greater than 10
- Inicializáltunk egy 19-es értékű változót. A 'C' program segítségével meg kell derítenünk, hogy a szám nagyobb vagy kisebb-e, mint 10. Ehhez az if-else konstrukciót használtuk.
- Itt adtunk meg egy számot <10, mert össze kell hasonlítanunk az értékünket a 10-tel.
- Mint látható, az első blokk mindig egy igazi blokk, ami azt jelenti, hogy ha a teszt-kifejezés értéke igaz, akkor az első blokk, amely If, akkor végrehajtásra kerül.
- A második blokk egy másik blokk. Ez a blokk azokat az utasításokat tartalmazza, amelyek végrehajtásra kerülnek, ha a teszt-kifejezés értéke hamis lesz. Programunkban a num értéke nagyobb, mint tíz, ezért a tesztfeltétel hamis lesz, és a blokk végrehajtásra kerül. Így a kimenetünk egy másik blokkból származik, amely "Az érték nagyobb, mint 10". Az if-else után a program sikeres eredménnyel zárul.
A 'C' programozásban több if-else konstrukciót is használhatunk egymáson belül, amelyeket if-else utasítások egymásba ágyazásaként emlegetünk.
Feltételes kifejezések
Van egy másik módja az if-else állítás kifejezésére a ?: Operátor bevezetésével . Feltételes kifejezésben a ?: Operátor csak egy utasítással rendelkezik az if és a másikkal.
Például:
#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;} Kimenet :
y =2Beágyazott If-else utasítások
Ha egy sor döntésre van szükség, akkor beágyazott if-else-t használunk. A fészkelés azt jelenti, hogy egy if-else konstrukciót használunk egy másikban.
Írjunk egy programot a beágyazott if-else használatának szemléltetésére.
#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;} Kimenet:
The value is:1A fenti program ellenőrzi, hogy egy szám kisebb vagy nagyobb-e, mint 10, és az eredményt beágyazott if-else konstrukcióval nyomtatja ki.
- Először deklaráltunk egy változó számot, amelynek értéke 1 volt. Ezután az if-else konstrukciót használtuk.
- A külső if-else esetben a megadott feltétel ellenőrzi, hogy egy szám kevesebb-e, mint 10. Ha a feltétel akkor igaz, és csak akkor hajtja végre a belső ciklust. Ebben az esetben a feltétel igaz, ezért a belső blokk feldolgozásra kerül.
- A belső blokkban ismét van egy feltételünk, amely ellenőrzi, hogy változónk tartalmazza-e az 1 értéket, vagy sem. Ha egy feltétel igaz, akkor feldolgozza az If blokkot, különben egy másik blokkot fog feldolgozni. Ebben az esetben a feltétel igaz, ezért a Ha egy blokk végrehajtásra kerül, és az érték kinyomtatásra kerül a kimeneti képernyőn.
- A fenti program kinyomtatja a változó értékét, és sikeresen kilép.
Próbálja meg megváltoztatni a változó értékét, és nézze meg, hogyan viselkedik a program.
MEGJEGYZÉS: A beágyazott if-else esetén óvatosnak kell lennünk a behúzással, mert több if-else konstrukció vesz részt ebben a folyamatban, így nehézzé válik az egyes konstrukciók kitalálása. A megfelelő behúzás megkönnyíti a program olvasását.
Beágyazott Else-if nyilatkozatok
Beágyazott else - ha többutas döntésekre van szükség.
Az általános szintaxis, hogy a „C” programozásban hogyan épülnek másképp létrák, a következő:
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;Ezt a típusú szerkezetet más, ha létra néven ismerjük. Ez a lánc általában úgy néz ki, mint egy létra, ezért más létezésnek is hívják. A teszt-kifejezéseket felülről lefelé értékelik. Ha valódi teszt-kifejezés található, a hozzá tartozó utasítás végrehajtásra kerül. Amikor az összes n teszt-kifejezés hamissá válik, akkor az alapértelmezett else utasítás kerül végrehajtásra.
Nézzük meg a tényleges munkát egy program segítségével.
#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;} Kimenet:
First classA fenti program kiírja az osztályzatot a teszten elért pontszámok szerint. A fenti programban az else-if létra konstrukciót használtuk.
- Inicializáltunk egy változót jelekkel. A másképp létra szerkezetben különféle feltételeket biztosítottunk.
- A változó jelekből származó értéket összehasonlítjuk az első feltétellel, mivel igaz, hogy a hozzá tartozó utasítás kinyomtatásra kerül a kimeneti képernyőn.
- Ha az első tesztfeltétel hamisnak bizonyul, akkor összehasonlítjuk a második feltétellel.
- Ez a folyamat addig tart, amíg az összes kifejezést ki nem értékeli, különben a vezérlés kimegy az else-ha létra felől, és az alapértelmezett utasítás kinyomtatásra kerül.
Próbálja meg módosítani az értéket, és vegye észre a kimenet változását.
Összegzés
- A döntéshozó vagy elágazó utasításokat használjuk arra, hogy az értékelt kifejezés eredménye alapján egy utat válasszunk.
- Ellenőrző utasításként is hívják, mert vezérli a program végrehajtásának folyamatát.
- A 'C' if-else konstrukciót ad a döntéshozó állításokhoz.
- Fészkelhetjük egymást is, ha több utat kell tesztelni.
- A else-if létra akkor használatos, ha a kifejezés eredménye alapján különféle módszereket kell ellenőriznünk.