3. Iteratiestatements In de module WO.PHP.basis

3.
Iteratiestatements
In de module WO.PHP.basis heb je een aantal iteratiestatements geleerd, namelijk:


Het for-statement
Het while statement
In C# en PHP is de syntax van deze statements gelijk aan elkaar. Ook de functie van deze
statements (het herhalen van 1 of meer coderegels) is in C# en PHP gelijk aan elkaar
In dit hoofdstuk zal dan ook geen uitleg van deze statements volgen. We gaan in dit hoofdstuk
oefenen met deze statements in de programmeertaal C#.
Oefenopdracht 3.1
In deze opdracht gaan we een programma maken waarin het totaal aantal studenten wordt
bepaald in een aantal klassen. Hiervoor wordt een for-statement gebruikt.
In deze oefenopdracht gebruiken we het scherm van figuur 3.1.
Figuur 3.1
Op het formulier zie je een button en een datagridview.
Instelling van het datagridview:

Geef de eigenschap Name de waarde dgvKlassen.
Voeg twee kolommen toe aan de datagridview. Doe dit bij de eigenschap Columns. In figuur 3.2
zie je het instelscherm voor kolommen in een datagridview. In dit scherm kun je de eigenschappen
van elke kolom apart aanpassen.


Maak twee kolommen. Eén met de naam Klas en één met de naam Aantal.
Stel de eigenschappen van elke kolom als volgt in (voorbeeld bij de kolom Klas):
Eigenschap
HeaderText
ColumnType
Width
Waarde
Klas
DataGridViewTextBoxColumn
50
Als je het programma start, dan kun je in de datagridview waarden invullen. In figuur 3.3 zie je een
voorbeeld.
Figuur 3.2
Figuur 3.3
Als je op de knop drukt, dan moet het totaal aantal leerlingen worden bepaald en zichtbaar worden
gemaakt. In figuur 3.4 zie je de code die hiervoor nodig is.
int aantalKlassen, aantalLeerlingen,totaal, i;
aantalKlassen = dgvKlassen.RowCount-1;
totaal=0;
for (i = 0; i < aantalKlassen; i++)
{
aantalLeerlingen = Convert.ToInt16(dgvKlassen[1,i].Value);
totaal += aantalLeerlingen;
}
MessageBox.Show("Totaal aantal leerlingen: "+totaal.ToString());
Figuur 3.4
In figuur 3.5 zie je een schematische voorstelling van dit stukje code.
aantalKlassen = dgvKlassen.RowCount-1
totaal=0
for (i = 0; i < aantalKlassen; i++)
aantalLeerlingen = Convert.ToInt16(dgvKlassen[1,i].Value)
totaal += aantalLeerlingen
MessageBox.Show("Totaal aantal leerlingen: "+totaal.ToString())
Figuur 3.5

Maak nu het programma af.
3.2
Uitleg van iteratiestatements
Het for-statement
Doel van het for-statement
Eén of meer coderegels een vast omschreven aantal keren herhalen.
Om het aantal herhalingen vast te stellen is een controlevariabele nodig. Vaak wordt zo’n
controlevariabele ook wel een teller genoemd. Het is een variabele die de tel van het aantal
herhalingen bijhoudt. Vaak wordt als variabele t, teller of i gebruikt. De teller wordt na elke
herhaling verhoogd of verlaagd.
De syntax van het for-statement
for(teller initialiseren; voorwaarde voor de teller; veranderingswaarde van de teller)
{
Blok met coderegels
}
Figuur 3.6
De syntax van het for-statement
Uitleg:
 teller initialiseren: hier geef je de teller een beginwaarde (bijvoorbeeld t=1)
 voorwaarde voor de teller: hier geef je aan welke waarden de teller mag hebben alvorens
deze verhoogd of verlaagd wordt (bijvoorbeeld t<=10)
 veranderingswaarde van de teller: hier geef je aan met welke waarde de teller telkens
wordt verhoogd of verlaagd (bijvoorbeeld t++)
t++ betekent: de variabele t wordt telkens met 1 verhoogd
t+=2 betekent: de variabele t wordt telkens met 2 verhoogd
t-- betekent: de variabele t wordt telkens met 1 verlaagd
t-=3 betekent: de variabele t wordt telkens met 3 verlaagd
Voorbeeld:
int som=0;
int t;
for(t=1; t<=10; t++)
{
som+=t;
}
Let op: de teller moet ook gedeclareerd worden en is van het type int.
In bovenstaand voorbeeld worden de getallen 1 tm 10 bij elkaar opgeteld. De code som+=t
betekent: verhoog de variabele som telkens met de waarde van t .
Het while-statement
Doel van het while-statement
Eén of meer coderegels herhalen zolang aan een bepaalde voorwaarde wordt voldaan.
In het while-statement speelt een booleanexpressie een belangrijke rol. Zolang de
booleanexpressie de waarde true geeft, dan worden de coderegels uitgevoed of herhaald. Geeft
de booleanexpressie de waarde false dan stopt de herhaling.
Syntax van het while-statement
while(booleanexpressie)
{
Blok met coderegels
}
Figuur 3.7
De syntax van het while-staement
Uitleg
booleanexpressie : een booleanexpressie die als voorwaarde dient voor het uitvoeren of herhalen
van het blok met coderegels (bijvoorbeeld: aantal<=10)
Voorbeeld
int som=0;
int aantal=1;
while(aantal<=10)
{
som+=aantal;
aantal++;
}
Bovenstaand voorbeeld doet hetzelfde als het voorbeeld van het for-statement.
Opdracht 3.3
Maak een programma dat het gemiddelde aantal leerlingen berekend. Het leerlingaantal moet
worden ingevoerd in een dataviewgrid, net zoals in leeropdracht 3.1. Maak hier gebruik van 2
knoppen. Bij de ene knop gebruik je het for-statement, bij de andere knop het while-statement
Je kunt nu de laatste opdrachten maken in opdrachten_hoofdstuk3.doc in de map Opdrachten.