Wat is een voorwaardelijke verklaring in C?
Voorwaardelijke verklaringen in C- programmering worden gebruikt om beslissingen te nemen op basis van de voorwaarden. Voorwaardelijke instructies worden opeenvolgend uitgevoerd als er geen voorwaarde is rond de instructies. Als u een voorwaarde stelt voor een blok met instructies, kan de uitvoeringsstroom veranderen op basis van het resultaat dat door de voorwaarde wordt geëvalueerd. Dit proces wordt besluitvorming genoemd in 'C'.
In 'C' zijn voorwaardelijke instructies mogelijk met behulp van de volgende twee constructies:
1. Als verklaring
2. If-else-verklaring
Het wordt ook wel branching genoemd, omdat een programma beslist welke instructie moet worden uitgevoerd op basis van het resultaat van de geëvalueerde conditie.
In deze tutorial leer je-
- Wat is een voorwaardelijke verklaring?
- Als statement
- Relationele operators
- De If-Else-verklaring
- Voorwaardelijke uitdrukkingen
- Geneste If-else-verklaringen
- Geneste Else-if-instructies
Als statement
Het is een van de krachtige voorwaardelijke uitspraken. If statement is verantwoordelijk voor het wijzigen van de stroom van uitvoering van een programma. If-instructie wordt altijd gebruikt met een voorwaarde. De voorwaarde wordt eerst geëvalueerd voordat een instructie binnen de hoofdtekst van If wordt uitgevoerd. De syntaxis voor if-instructie is als volgt:
if (condition)instruction;
De voorwaarde evalueert naar waar of onwaar. True is altijd een waarde die niet nul is en false is een waarde die nul bevat. Instructies kunnen een enkele instructie zijn of een codeblok tussen accolades {}.
Het volgende programma illustreert het gebruik van if construct in 'C'-programmering:
#includeint main(){int num1=1;int num2=2;if(num1 Uitgang:
num1 is smaller than num2Het bovenstaande programma illustreert het gebruik van if construct om gelijkheid van twee getallen te controleren.
- In het bovenstaande programma hebben we twee variabelen geïnitialiseerd met num1, num2 met waarde als respectievelijk 1, 2.
- Vervolgens hebben we if met een test-uitdrukking gebruikt om te controleren welk getal het kleinste is en welk getal het grootste. We hebben een relationele uitdrukking gebruikt in if construct. Omdat de waarde van num1 kleiner is dan num2, wordt de voorwaarde geëvalueerd als true.
- Het zal dus de instructie in het blok If afdrukken. Daarna gaat de besturing buiten het blok en wordt het programma beëindigd met een succesvol resultaat.
Relationele operators
C heeft zes relationele operatoren die kunnen worden gebruikt om een Booleaanse uitdrukking te formuleren voor het nemen van een beslissing en testvoorwaarden, die true of false retourneert:
<= kleiner dan of gelijk aan
> groter dan
> = groter dan of gelijk aan
== gelijk aan
! = niet gelijk aan
Merk op dat de gelijkwaardige test (==) verschilt van de toewijzingsoperator (=), omdat dit een van de meest voorkomende problemen is waarmee een programmeur te maken krijgt door ze door elkaar te halen.
Bijvoorbeeld:
int x = 41;x =x+ 1;if (x == 42) {printf("You succeed!");}Uitgang:
You succeedHoud 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");Uitgang:
There is someone present in the classroomDe 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;Bij dit type construct, als de waarde van test-expression true is, wordt het ware blok met instructies uitgevoerd. Als de waarde van test-expression false is, wordt het false-blok met instructies uitgevoerd. In ieder geval zal de controle na de uitvoering automatisch worden overgedragen aan de verklaringen die buiten het blok van If verschijnen.
De volgende programma's illustreren het gebruik van de if-else-constructie:
We initialiseren een variabele met een bepaalde waarde en schrijven een programma om te bepalen of de waarde kleiner is dan tien of groter dan tien.
Laten we beginnen.
#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;} Uitgang:
The value is greater than 10
- We hebben een variabele geïnitialiseerd met waarde 19. We moeten met een 'C'-programma uitzoeken 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 nummer <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 test-expression true is, het eerste blok dat If is, zal worden uitgevoerd.
- Het tweede blok is een else-blok. Dit blok bevat de instructies die zullen worden uitgevoerd als de waarde van de test-expressie false wordt. In ons programma is de waarde van num groter dan tien, vandaar dat de testconditie onwaar wordt en anders wordt het blok uitgevoerd. Onze uitvoer zal dus afkomstig zijn van een else-blok dat is "De waarde is groter dan 10". Na de if-else wordt het programma beëindigd met een succesvol resultaat.
In 'C'-programmering kunnen we meerdere if-else-constructies binnen elkaar gebruiken die worden aangeduid als nesting of if-else-statements.
Voorwaardelijke uitdrukkingen
Er is een andere manier om een if-else-instructie uit te drukken, door de ?: -Operator in te voeren. In een voorwaardelijke uitdrukking heeft de ?: Operator slechts één instructie die is gekoppeld aan de if en de else.
Bijvoorbeeld:
#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;} Uitgang:
y =2Geneste If-else-verklaringen
Wanneer een reeks beslissingen vereist is, wordt geneste if-else gebruikt. Nesten betekent het gebruik van een if-else-constructie in een andere.
Laten we een programma schrijven om het gebruik van geneste if-else te illustreren.
#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;} Uitgang:
The value is:1Het bovenstaande programma controleert of een getal kleiner of groter is dan 10 en drukt het resultaat af met de geneste if-else-constructie.
- Ten eerste hebben we een variabele num gedeclareerd met de waarde 1. Vervolgens hebben we if-else construct gebruikt.
- In de buitenste if-else controleert de gegeven conditie of een getal kleiner is dan 10. Als de conditie waar is, dan zal het de binnenste lus uitvoeren. In dit geval is de voorwaarde waar en wordt het binnenblok verwerkt.
- In het binnenste blok hebben we weer een voorwaarde die controleert of onze variabele de waarde 1 bevat of niet. Als een voorwaarde waar is, zal het het If-blok verwerken, anders zal het een else-blok verwerken. In dit geval is de voorwaarde waar, vandaar dat het Als een blok wordt uitgevoerd en de waarde wordt afgedrukt op het uitvoerscherm.
- Het bovenstaande programma zal de waarde van een variabele afdrukken en met succes afsluiten.
Probeer de waarde van de variabele te veranderen, kijk hoe het programma zich gedraagt.
OPMERKING: in geneste if-else moeten we voorzichtig zijn met de inspringing omdat er meerdere if-else-constructies bij dit proces betrokken zijn, dus het wordt moeilijk om individuele constructies te achterhalen. De juiste inspringing maakt het gemakkelijk om het programma te lezen.
Geneste Else-if-instructies
Geneste else-if wordt gebruikt wanneer beslissingen met meerdere paden vereist zijn.
De algemene syntaxis van hoe anders-als-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 constructie staat bekend als de anders-als-ladder. Deze ketting ziet er over het algemeen uit als een ladder en wordt daarom ook wel een anders-als-ladder genoemd. De testuitdrukkingen worden van boven naar beneden geëvalueerd. Wanneer een echte testuitdrukking wordt gevonden, wordt de bijbehorende instructie uitgevoerd. Als alle n testuitdrukkingen onwaar worden, wordt de standaard else-instructie uitgevoerd.
Laten we eens kijken naar het daadwerkelijke werken met behulp van een programma.
#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;} Uitgang:
First classHet bovenstaande programma drukt het cijfer af volgens de punten die in een test zijn gescoord. We hebben de else-if ladderconstructie gebruikt in het bovenstaande programma.
- We hebben een variabele met markeringen geïnitialiseerd. In de anders-als-ladderconstructie hebben we verschillende voorwaarden voorzien.
- De waarde van de variabele markeringen wordt vergeleken met de eerste voorwaarde, aangezien het waar is dat de bijbehorende instructie op het uitvoerscherm wordt afgedrukt.
- Als de eerste testconditie onwaar blijkt te zijn, wordt deze vergeleken met de tweede conditie.
- Dit proces gaat door totdat de all-expressie is geëvalueerd, anders verdwijnt de controle uit de else-if-ladder en wordt de standaardinstructie afgedrukt.
Probeer de waarde te wijzigen en let op de verandering in de uitvoer.
Overzicht
- Besluitvormings- of vertakkingsinstructies worden gebruikt om een pad te selecteren op basis van het resultaat van de geëvalueerde uitdrukking.
- Het wordt ook wel control statements genoemd omdat het de stroom van uitvoering van een programma regelt.
- 'C' geeft if, if-else constructs voor beslissingsverklaringen.
- We kunnen if-else ook in elkaar nestelen als er meerdere paden moeten worden getest.
- De else-if-ladder wordt gebruikt wanneer we verschillende manieren moeten controleren op basis van het resultaat van de uitdrukking.