Herhalingstructuren |
Het normale programmaverloop is van boven naar beneden regel voor regel, maar dit is niet altijd nuttig. Sommige instructies moeten meerdere keren uitgevoerd worden. Java geeft ons die mogelijkheid en kent een aantal herhalingsstructuren, te weten:
De syntax van het while statement is:
while (expressie) statement
Het while-statement begint met de evaluatie van de expressie. De expressie moet een waarheidswaarde true of false (waar of niet waar) afleveren. Als de expressie waar is wordt het statement uitgevoerd en daarná de expressie opnieuw geëvalueerd. Is de expressie niet waar dan gaat het programma verder met het eerstvolgende statement na het while-statement.
Een herhalingsstructuur biedt de programmeur de mogelijkheid om een programmagedeelte meerdere malen uit te voeren zolang er aan de herhalingsvoorwaarde voldaan wordt. Een veel gebruikte manier om het aantal herhalingen te beheren is met een teller binnen het herhalingsblok. Bijvoorbeeld (in pseudocode)
Zolang het getal kleiner dan 10 is Print het getal verhoog het getal
In Java wordt dat:
while ( teller < 10 ) { // herhalings voorwaarde
System.out.print(teller + " ");
teller++; // increment
}
In de expressie wordt een relatie onderzocht (bijv. de waarde van een variabele is groter dan nul). Java kent hiervoor een aantal zgn relationele operatoren.
Bij het conversieprogramma in les 3 wordt, onmiddellijk nadat het is gestart, gevraagd of een conversie moet worden uitgevoerd. Dat is eigenlijk niet logisch, immers waarom is het programma dan gestart? Er zou tenminste één conversie moeten worden uitgevoerd. Daarna kan gevraagd worden of nog een conversie nodig is. Voor die volgorde, tenminste eenmaal een bewerking uitvoeren en daarna onderzoeken of de bewerking moet worden herhaald, is het do-statement bedoeld.
De syntax van het do-statement is:
do statement while (expressie);
Tussen do en while kan een samengesteld statement tussen accolades staan, dus
do { statement_1
statement_2
statement_n
} while (expressie);
Een zeer veel gebruikte vorm van een while is met een teller. Dit komt zo vaak voor dat er een aparte constructie voor gemaakt is. de for lus.
int teller = 1;
while ( teller < 10 ) {
// doe iets
teller++;
}
|
for( int teller = 1; teller < 10 ; teller++) {
// doe iets
}
|
De integer die gedeclareerd wordt binnen de for-lus bestaat alleen binnen de for-lus. Dus het onderstaande programma fragment is juist. De twee declaraties van de variabele teller zien elkaar niet.
for( int teller = 1; teller < 10 ; teller++) {
// doe iets
}
for( int teller = 4; teller < 20 ; teller += 2) { //teller loopt van 4, 6, 8, .. ,18
// doe iets anders
}