C Voorwaardelijke verklaring: IF, IF Else en Genest IF Else met voorbeeld
Wat is een voorwaardelijke verklaring in C?
Voorwaardelijke uitspraken in C programmering worden gebruikt om beslissingen te nemen op basis van de omstandigheden. Voorwaardelijke instructies worden opeenvolgend uitgevoerd als er geen voorwaarde rond de instructies bestaat. Als u een voorwaarde aan een blok met instructies stelt, kan de uitvoeringsstroom veranderen op basis van het resultaat dat door de voorwaarde wordt geëvalueerd. Dit proces wordt besluitvorming genoemd in 'C.'
In de C-programmering zijn voorwaardelijke statements mogelijk met behulp van de volgende twee constructies:
1. Indien verklaring
2. If-else-verklaring
Het wordt ook wel vertakking genoemd, omdat een programma beslist welke instructie moet worden uitgevoerd op basis van het resultaat van de geëvalueerde voorwaarde.
Als statement
Het is een van de krachtige voorwaardelijke verklaringen. De If-instructie is verantwoordelijk voor het wijzigen van de uitvoeringsstroom van een programma. If-instructie wordt altijd gebruikt met een voorwaarde. De voorwaarde wordt eerst geëvalueerd voordat een instructie in de hoofdtekst van If wordt uitgevoerd. De syntaxis voor de if-instructie is als volgt:
if (condition) instruction;
De voorwaarde resulteert in waar of onwaar. Waar is altijd een waarde die niet nul is, en onwaar is een waarde die nul bevat. Instructies kunnen een enkele instructie zijn of een codeblok tussen accolades { }.
Het volgende programma illustreert het gebruik van de if-constructie in 'C'-programmering:
#include<stdio.h> int main() { int num1=1; int num2=2; if(num1<num2) //test-condition { printf("num1 is smaller than num2"); } return 0; }
Output:
num1 is smaller than num2
Het bovenstaande programma illustreert het gebruik van de if-constructie om te controleren of twee getallen gelijk zijn.
- In het bovenstaande programma hebben we twee variabelen geïnitialiseerd met num1, num2 met respectievelijk de waarde 1 en 2.
- Vervolgens hebben we if met een test-expressie gebruikt om te controleren welk getal het kleinste en welk getal het grootste is. We hebben een relationele expressie gebruikt in if construct. Omdat de waarde van num1 kleiner is dan num2, wordt de voorwaarde geëvalueerd als waar.
- Het zal dus de instructie binnen het blok If afdrukken. Daarna gaat de besturing buiten het blok en wordt het programma met succesvol resultaat beëindigd.
relationele Operaverdraaid
C heeft zes relationele operatoren die kunnen worden gebruikt om een Booleaanse expressie te formuleren voor het nemen van een beslissing en het testen van voorwaarden, die true of false retourneert:
< minder dan
<= kleiner dan of gelijk aan
> groter dan
>= groter dan of gelijk aan
== gelijk aan
!= niet gelijk aan
Merk op dat de gelijkheidstest (==) verschilt van de toewijzingsoperator (=), omdat het een van de meestvoorkomende problemen is waarmee een programmeur te maken krijgt als hij ze door elkaar haalt.
Bijvoorbeeld:
int x = 41; x =x+ 1; if (x == 42) { printf("You succeed!");}
Output:
You succeed
Houd er rekening mee dat een voorwaarde die resulteert in een waarde die niet nul is, als waar wordt beschouwd.
Bijvoorbeeld:
int present = 1; if (present) printf("There is someone present in the classroom \n");
Output:
There is someone present in the classroom
De If-Else-verklaring
De if-else is-instructie is een uitgebreide versie van If. De algemene vorm van if-else is als volgt:
if (test-expression) { True block of statements } Else { False block of statements } Statements;
Als bij dit type constructie de waarde van test-expressie waar is, wordt het ware blok met instructies uitgevoerd. Als de waarde van test-expressie false is, wordt het false-blok met instructies uitgevoerd. In ieder geval wordt de controle na de uitvoering automatisch overgedragen naar de instructies die buiten het blok If verschijnen.
De volgende programma's illustreren het gebruik van de if-else constructie:
We zullen een variabele met een bepaalde waarde initialiseren en een programma schrijven om te bepalen of de waarde kleiner dan tien of groter dan tien is.
Laten we beginnen.
#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; }
Output:
The value is greater than 10
- We hebben een variabele met waarde 19 geïnitialiseerd. Met behulp van een 'C'-programma moeten we erachter komen of het getal groter of kleiner is dan 10. Om dit te doen, hebben we de if-else-constructie gebruikt.
- Hier hebben we een voorwaarde num<10 opgegeven, omdat we onze waarde moeten vergelijken met 10.
- Zoals je kunt zien is het eerste blok altijd een waar blok, wat betekent dat als de waarde van de test-expressie waar is, het eerste blok, If, zal worden uitgevoerd.
- Het tweede blok is een else-blok. Dit blok bevat de instructies die worden uitgevoerd als de waarde van de testexpressie onwaar wordt. In ons programma is de waarde van num groter dan tien, waardoor de testvoorwaarde onwaar wordt en anders wordt het blok uitgevoerd. Onze uitvoer zal dus afkomstig zijn van een else-blok dat luidt: "De waarde is groter dan 10". Na de if-else wordt het programma beëindigd met een succesvol resultaat.
Bij 'C'-programmeren kunnen we meerdere if-else-constructies in elkaar gebruiken, ook wel het nesten van if-else-instructies genoemd.
Voorwaardelijke expressies
Er is nog een andere manier om een if-else-instructie uit te drukken, namelijk door de in te voeren ?: operator. In een voorwaardelijke expressie is de ?: operator heeft slechts één instructie die gekoppeld is aan de if en de else.
Bijvoorbeeld:
#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;}
Output:
y =2
Geneste If-else-instructies
Wanneer een reeks beslissingen nodig is, wordt geneste if-else gebruikt. Nesten betekent het gebruik van een if-else-constructie binnen een andere.
Laten we een programma schrijven om het gebruik van geneste if-else te illustreren.
#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; }
Output:
The value is:1
Het bovenstaande programma controleert of een getal kleiner of groter is dan 10 en drukt het resultaat af met behulp van een geneste if-else-constructie.
- Ten eerste hebben we een variabele num gedeclareerd met de waarde 1. Vervolgens hebben we de if-else-constructie gebruikt.
- In de buitenste if-else controleert de opgegeven voorwaarde of een getal kleiner is dan 10. Als de voorwaarde waar is, dan en alleen dan zal het de binnenste lus. In dit geval is de voorwaarde waar en wordt het binnenste blok verwerkt.
- In het binnenste blok hebben we opnieuw een voorwaarde die controleert of onze variabele de waarde 1 bevat of niet. Wanneer een voorwaarde waar is, zal het het If-blok verwerken, anders zal het een else-blok verwerken. In dit geval is de voorwaarde waar, dus wordt het If-blok uitgevoerd en wordt de waarde afgedrukt op het uitvoerscherm.
- Het bovenstaande programma drukt de waarde van a af variabele en sluit af met succes.
Probeer de waarde van de variabele te veranderen en kijk hoe het programma zich gedraagt.
NOTITIE: Bij geneste if-els moeten we voorzichtig zijn met de inspringing, omdat er meerdere if-else-constructies bij dit proces betrokken zijn, waardoor het moeilijk wordt om individuele constructies te achterhalen. Door de juiste inspringing is het programma gemakkelijk te lezen.
Geneste Else-if-instructies
Genest else-if wordt gebruikt wanneer multipath-beslissingen vereist zijn.
De algemene syntaxis van hoe else-if-ladders worden geconstrueerd in 'C'-programmering is als volgt:
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;
Dit type structuur staat bekend als de else-if-ladder. Deze ketting ziet er over het algemeen uit als een ladder en wordt daarom ook wel een else-if-ladder genoemd. De testuitdrukkingen worden van boven naar beneden geëvalueerd. Telkens wanneer een echte testexpressie wordt gevonden, wordt de bijbehorende instructie uitgevoerd. Wanneer alle n testexpressies onwaar worden, wordt de standaard else-instructie uitgevoerd.
Laten we eens kijken hoe het daadwerkelijk werkt met behulp van een programma.
#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; }
Output:
First class
Het bovenstaande programma drukt het cijfer af volgens de cijfers die in een test zijn behaald. In het bovenstaande programma hebben we de else-if-ladderconstructie gebruikt.
- We hebben een variabele met markeringen geïnitialiseerd. In de else-if-ladderstructuur hebben we verschillende voorwaarden gesteld.
- De waarde van de variabele markeringen wordt vergeleken met de eerste voorwaarde, aangezien het waar is dat de bijbehorende verklaring op het uitvoerscherm wordt afgedrukt.
- Als de eerste testvoorwaarde onwaar blijkt te zijn, wordt deze vergeleken met de tweede voorwaarde.
- Dit proces gaat door totdat de all-expressie is geëvalueerd. Anders verlaat de controle de else-if-ladder en wordt de standaardinstructie afgedrukt.
Probeer de waarde te wijzigen en merk de verandering in de uitvoer op.
Samenvatting
- Besluitvormings- of vertakkingsinstructies worden gebruikt om één pad te selecteren op basis van het resultaat van de geëvalueerde expressie.
- Het wordt ook wel controle-instructies genoemd omdat het de uitvoeringsstroom van een programma regelt.
- 'C' biedt if, if-else constructies voor besluitvormingsverklaringen.
- We kunnen if-else ook in elkaar nesten als er meerdere paden getest moeten worden.
- De else-if-ladder wordt gebruikt wanneer we verschillende manieren moeten controleren op basis van het resultaat van de uitdrukking.