Voorwaardelijke instructies in C: If, Else, geneste If met voorbeeld

โšก Slimme samenvatting

Voorwaardelijke instructies in C bepalen de programmastroom door codeblokken alleen uit te voeren wanneer een geteste voorwaarde waar is. Dit maakt besluitvorming mogelijk via if-, if-else-, geneste en else-if-constructies.

  • ๐Ÿ”ค Als-instructie: Een if-statement voert het codeblok alleen uit als de voorwaarde een niet-nulwaarde (waar) heeft; nul betekent onwaar.
  • ๐Ÿ”€ Als-anders: De if-else-constructie voegt een 'false'-tak toe, waardoor รฉรฉn blok wordt uitgevoerd wanneer de voorwaarde waar is en een ander blok wanneer deze onwaar is.
  • โ€‹ Relationele operatoren: Zes operatoren (<, <=, >, >=, ==, !=) vormen de Booleaanse expressies die elke voorwaarde test.
  • ๐Ÿชœ Anders-als-ladder: Een geneste else-if-structuur controleert meerdere expressies van boven naar beneden en voert de eerste ware tak uit, of een standaard else-statement.
  • โ“ Ternaire operator: De voorwaardelijke expressie ?: schrijft een compacte if-else-structuur die รฉรฉn van twee waarden retourneert, allemaal op รฉรฉn regel.
  • ๐Ÿค– AI-assistentie: GitHub Copilot stelt if-else-logica op, beoordeelt deze, signaleert ontbrekende accolades en stelt duidelijkere voorwaarden voor.

Voorwaardelijke instructies in C: IF, IF Else en geneste IF Else

Wat is een voorwaardelijke verklaring in C?

Voorwaardelijke instructies in C-programmering worden gebruikt om beslissingen te nemen op basis van voorwaarden. Voorwaardelijke instructies worden sequentieel uitgevoerd wanneer er geen voorwaarde aan de instructies is verbonden. Als je een voorwaarde aan een blok instructies toevoegt, kan de uitvoeringsvolgorde veranderen op basis van het resultaat dat door de voorwaarde wordt geรซvalueerd. Dit proces wordt besluitvorming in C genoemd.

Anders lussen in C Bij herhaalde code kiezen voorwaardelijke instructies รฉรฉn pad.

In de C-programmering zijn voorwaardelijke statements mogelijk met behulp van de volgende twee constructies:

  1. Als statement
  2. If-else-instructie

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.

Stroomdiagram van een If-statement in C

  1. In het bovenstaande programma hebben we twee variabelen geรฏnitialiseerd met num1, num2 met respectievelijk de waarde 1 en 2.
  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.
  3. 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 gebruikt kunnen worden om een โ€‹โ€‹Booleaanse expressie te formuleren voor het nemen van een beslissing en het testen van voorwaarden, die waar of onwaar 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

Stroomschema van een If-Else-instructie in C

De if-else-instructie is een uitgebreidere versie van de if-instructie. 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 constructie wordt, als de waarde van de testuitdrukking waar is, het blok met instructies dat waar is uitgevoerd. Als de waarde van de testuitdrukking onwaar is, wordt het blok met instructies dat onwaar is uitgevoerd. In beide gevallen wordt de controle na de uitvoering automatisch overgedragen aan de instructies buiten het If-blok.

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

Voorbeeld van de uitvoer van een If-Else-instructie in C.

  1. 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.
  2. Hier hebben we een voorwaarde num<10 opgegeven, omdat we onze waarde moeten vergelijken met 10.
  3. 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.
  4. 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

Een andere manier om een โ€‹โ€‹if-else-instructie uit te drukken is door de operator ?: te gebruiken. In een voorwaardelijke expressie heeft de operator ?: slechts รฉรฉn instructie die aan de if en de else is gekoppeld.

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.

Geneste if-else-instructie in C

  1. Ten eerste hebben we een variabele num gedeclareerd met de waarde 1. Vervolgens hebben we de if-else-constructie gebruikt.
  2. In de buitenste if-else-structuur wordt gecontroleerd of een getal kleiner is dan 10. Alleen als aan deze voorwaarde is voldaan, wordt het binnenste blok uitgevoerd. In dit geval is de voorwaarde waar, dus wordt het binnenste blok verwerkt.
  3. In het binnenste blok hebben we opnieuw een voorwaarde die controleert of onze variabele de waarde 1 bevat. Als de voorwaarde waar is, wordt het if-blok uitgevoerd; anders wordt het else-blok uitgevoerd. In dit geval is de voorwaarde waar, dus wordt het if-blok uitgevoerd en wordt de waarde op het scherm weergegeven.
  4. Het bovenstaande programma print de waarde van een variabele en sluit succesvol af.

Probeer de waarde te wijzigen variabele Bekijk hoe het programma zich gedraagt.

LET OP: Bij geneste if-else-structuren moeten we goed letten op de inspringing, omdat er meerdere if-else-constructies bij betrokken zijn. Hierdoor kan het lastig zijn om de afzonderlijke constructies te onderscheiden. Correcte inspringing maakt het programma leesbaarder.

Geneste Else-if-instructies

Geneste else-if-structuur in C

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 keten heeft over het algemeen de vorm van een ladder, vandaar de naam else-if-ladder. De testuitdrukkingen worden van boven naar beneden geรซvalueerd. Wanneer een testuitdrukking waar is, wordt de bijbehorende instructie uitgevoerd. Wanneer alle n testuitdrukkingen 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.

  1. We hebben een variabele met markeringen geรฏnitialiseerd. In de else-if-ladderstructuur hebben we verschillende voorwaarden gesteld.
  2. 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.
  3. Als de eerste testvoorwaarde onwaar blijkt te zijn, wordt deze vergeleken met de tweede voorwaarde.
  4. Dit proces gaat door totdat alle expressies zijn geรซvalueerd; anders verlaat de code de else-if-structuur en wordt de default-instructie afgedrukt.

Probeer de waarde te wijzigen en merk de verandering in de uitvoer op.

Veelgestelde vragen

Een if-else-structuur test elke Booleaanse expressie, inclusief bereiken en relationele controles. schakelaar ... geval Vergelijkt een variabele met vaste constante waarden en compileert vaak naar een snellere sprongtabel voor veel gevallen.

Het probleem van de loshangende else is de onduidelijkheid over bij welke if-instructie een else hoort wanneer if-instructies zonder accolades genest zijn. In C koppelt een else altijd aan de dichtstbijzijnde if-instructie die er niet bij hoort. Door accolades toe te voegen, wordt deze verwarring weggenomen.

Ja. Logische operatoren verbinden voorwaarden: && vereist dat beide kanten waar zijn, || vereist dat minstens รฉรฉn kant waar is, en ! keert een resultaat om. Bijvoorbeeld, als (leeftijd > 18 && burger) twee voorwaarden tegelijk test in รฉรฉn if-statement.

Accolades zijn optioneel wanneer de body uit รฉรฉn enkele instructie bestaat, waardoor C alleen de volgende regel uitvoert. Bij twee of meer instructies zijn accolades vereist om ze te groeperen. Het gebruik van accolades is een veilige gewoonte die logische fouten voorkomt.

De evaluatie van de kortsluiting stopt zodra het resultaat bekend is. Met && wordt bij een onjuiste linkerkant de rechterkant overgeslagen. Met || wordt bij een juiste linkerkant de rechterkant overgeslagen. Dit voorkomt onnodig werk en onveilige handelingen.

Ja. Een else-if-ladder wordt van boven naar beneden geรซvalueerd en stopt bij de eerste ware voorwaarde. Het plaatsen van brede voorwaarden vรณรณr smalle voorwaarden kan de smalle gevallen verbergen, dus rangschik de tests van meest specifiek naar meest algemeen.

Ja. AI-codeerassistenten genereren voorwaardelijke blokken op basis van commentaar, zetten lange if-else-ketens om in overzichtelijkere structuren en signaleren mogelijke fouten, zoals het gebruik van '=' in plaats van '=='. Test de gegenereerde logica altijd voordat u erop vertrouwt.

GitHub-copiloot Deze functie vult automatisch if-, else-if- en geneste voorwaarden aan vanuit je commentaar of de omliggende code. Het suggereert relationele en logische expressies en kan ontbrekende accolades toevoegen, maar je moet elke suggestie wel controleren.

Vat dit bericht samen met: