InfoNu.nl > Pc en Internet > Programmeren > Hoe programmeer je loops in C++?

Hoe programmeer je loops in C++?

Hoe programmeer je loops in C++? In een computerprogramma is het soms noodzakelijk dat bepaalde stukken code meer dan eens worden uitgevoerd. Daarbij maak je in de programmeertaal C++ vaak gebruik van conditionele lussen, ook wel 'loops' genoemd. Er zijn verschillende soorten loops mogelijk, bijvoorbeeld while en for. Hoe implementeer je ze?

Inhoudsopgave


While

Deze loop wordt uitgevoerd zolang de gegeven conditie (soms ook expressie genoemd) waar is. Zodra de conditie onwaar is, verlaat het programma de loop en gaat verder met het verwerken van de rest van de broncode. In het geval dat de conditie de eerste keer al onwaar is, wordt de code in de loop nul keer uitgevoerd.

Voorbeeld:
#include <iostream>
int main(){

int a = 3;
while(a>1)
{
std::cout << "Nog " << a << " seconden voor lancering van de raket." << std::endl;
a--;
}

std::cout << "Goede reis naar de maan!" << std::endl;

std::cin.get();
return 0;
}

We initialiseren een variabele genaamd 'a' van het datatype integer met waarde '3' (int a=3) en verminderen in de loop de waarde hiervan met '1' (a--). Het is duidelijk dat de conditie van de while loop (a>1) de eerste twee keer dat het wordt doorlopen waar is, want drie is groter dan één en twee is ook groter dan één. De uitvoer van het programma is dan ook als volgt:

Nog 3 seconden voor lancering van de raket.
Nog 2 seconden voor lancering van de raket.
Goede reis naar de maan!

Do while

Een do while loop lijkt op de vorige, met als verschil dat de code minstens eenmaal wordt uitgevoerd, ongeacht of de conditie waar of onwaar is.

Voorbeeld:
#include <iostream>
int main(){

int b = 3;
do
{
std::cout << "Ik heb " << b << " appels." << std::endl;
b += 2;
}while(b<5);

std::cin.get();
return 0;
}

De variabele 'b' heeft de eerste keer de waarde drie (int b=3). Vervolgens wordt b met twee verhoogd (b += 2, alhoewel b = b + 2 ook correct is) en is dus gelijk aan vijf en niet minder dan vijf. De conditie 'b<5' is nu niet meer waar. De uitvoer is kort maar krachtig:

Ik heb 3 appels.

For

Een for loop bestaat uit drie condities gescheiden door een puntkomma: begin, eind en teller. Zolang nog niet aan de eindconditie is voldaan, wordt de code uitgevoerd.

Voorbeeld:
#include <iostream>
int main(){

for(int c = 1; c<4; c++)
{
std::cout << "Aantal gekochte boeken: " << c << std::endl;
}

std::cin.get();
return 0;
}

De beginconditie is c=1, de eindconditie is c<4 en de teller is c++. Zolang c niet gelijk is aan vier wordt de code in de loop verwerkt. De uitvoer van dit programma is:

Aantal gekochte boeken: 1
Aantal gekochte boeken: 2
Aantal gekochte boeken: 3

If else

In deze loop zijn er twee mogelijkheden: de conditie is waar en de betreffende code in het 'if'-gedeelte wordt uitgevoerd, of de eerste conditie is niet waar en de code in het 'else'-gedeelte wordt uitgevoerd.

Voorbeeld:
#include <iostream>
int main(){

int d = 10;
if(d == 20)
{
std::cout << "Ik krijg " << d << " dagen vakantie." << std::endl;
}else{
std::cout << "Mag ik een paar extra dagen vrij?" << std::endl;
}

std::cin.get();
return 0;
}

Na initialisatie van de variabele 'd' met waarde '10' kan de conditie 'd is gelijk aan twintig' (d == 20) niet waar zijn, dus slaat het programma de code in het 'if'-gedeelte over en voert alleen de code in het volgende gedeelte van de loop uit. Dat betekent dat de uitvoer in dit geval het volgende bevat:

Mag ik een paar extra dagen vrij?

Er is een variant op deze constructie, waarbij 'else if' dezelfde functie heeft als 'if'. Als de conditie in het 'else if'-gedeelte onwaar is, wordt het overgeslagen.

Voorbeeld:
#include <iostream>
int main(){

int d = 10;
if(d == 20)
{
std::cout << "Ik krijg " << d << " dagen vakantie." << std::endl;
}else if(d == 15){
std::cout << "Ik krijg " << d << " dagen vakantie." << std::endl;
}else{
std::cout << "Mag ik een paar extra dagen vrij?" << std::endl;
}

std::cin.get();
return 0;
}

Switch

Als je veel if else constructies gebruikt, kan het onoverzichtelijk worden. Een switch loop lijkt hierop en is minstens zo geschikt om een bepaalde voorwaarde af te dwingen.

Voorbeeld:
#include <iostream>
int main(){

int cijfer = 7;
switch(cijfer)
{
case 8:
std::cout << "Ik wil graag een hoger cijfer." << std::endl;
break;

case 9:
std::cout << "Ik wil graag een hoger cijfer." << std::endl;
break;

case 10:
std::cout << "Ik heb het hoogste cijfer!" << std::endl;
break;

default:
std::cout << "Ik zal harder studeren." << std::endl;
break;
}

std::cin.get();
return 0;
}

Zoals je ziet, is de opbouw van een case (een voorwaarde, net zoals 'if' in de 'if else'-loop) steeds hetzelfde: het woord 'case', de mogelijke waarde, een dubbele punt, jouw code, en het woord 'break'. Er kunnen zoveel cases worden toegevoegd als je wilt.

Stel dat we als invoer een cijfer met de waarde '7' krijgen. Als een case van de switch overeenkomt met de conditie, wordt alleen dat stuk code uitgevoerd.

De case 'default' kan worden weggelaten, maar het is verstandig dit toch toe te voegen. Deze case wordt namelijk gebruikt als de invoer niet overeenkomt met de andere voorwaarden.

Als het cijfer gelijk zou zijn aan '10' is de uitvoer van het programma als volgt:
Ik heb het hoogste cijfer!

Echter, als het cijfer gelijk is aan '7' krijgen we de volgende uitvoer op het scherm:
Ik zal harder studeren.
© 2014 - 2017 Starryheart, het auteursrecht van dit artikel ligt bij de infoteur. Zonder toestemming van de infoteur is vermenigvuldiging verboden.
Gerelateerde artikelen
Inwendige of begin ballistiek: versnelling kogel in de loopInwendige of begin ballistiek: versnelling kogel in de loopDe inwendige ballistiek is een onderdeel van de wetenschappelijke ballistiek waarin de verschijnselen bestudeerd worden…
Programmeren en hulpmiddelenProgrammeren is het schrijven van een computerprogramma, een verzameling instructies die een computer uitvoert. Programm…
Loop LeeuwardenLoop LeeuwardenLoop Leeuwarden is een jaarlijks georganiseerd loopevenement dat wandelend en hardlopend te volbrengen is. Het is het gr…
Kinderliedjes: Sint MaartenKinderliedjes: Sint MaartenIeder jaar op 11 november wordt in sommige streken van Nederland, maar ook in Vlaanderen en Noord-Frankrijk het Sint Maa…
Ballistiek geweer: schieten met geweren en schothagelBallistiek geweer: schieten met geweren en schothagelEen geweer is in feite een vuurwapen met een relatief lange loop. Bijvoorbeeld in de jacht wordt in plaats van handwapen…
Bronnen en referenties
  • C++, Leen Ammeraal, 6e druk, Academic Service, ISBN 9039519358

Reageer op het artikel "Hoe programmeer je loops in C++?"

Plaats als eerste een reactie, vraag of opmerking bij dit artikel. Reacties moeten voldoen aan de huisregels van InfoNu.
Meld mij aan voor de tweewekelijkse InfoNu nieuwsbrief
Infoteur: Starryheart
Laatste update: 15-06-2014
Gepubliceerd: 26-05-2014
Rubriek: Pc en Internet
Subrubriek: Programmeren
Bronnen en referenties: 1
Schrijf mee!