1. Loops in ons leven
Heel vaak vereist ons leven dat we vele malen dezelfde acties uitvoeren. Stel dat ik een document moet scannen dat uit veel pagina's bestaat. Dat we dezelfde procedure keer op keer herhalen:
- Leg de eerste pagina op de scanner
- Druk op de scanknop
- Leg de volgende pagina op de scanner
Dit is moeilijk handmatig te doen. Het zou mooi zijn als dit proces op de een of andere manier geautomatiseerd zou kunnen worden.
Of neem een ander voorbeeld: stel dat ik alle ongelezen e-mails in mijn inbox als spam wil markeren. Ooit moest ik elke e-mail een voor een selecteren en markeren als spam.
Maar programmeurs zijn lui, dus automatiseerden ze dit proces lang geleden: nu selecteer je gewoon een lijst met letters en klik je op "markeren als spam", en dan doorloopt je e-mailclient de lijst en verplaatst elke e-mail naar de spammap.
Wat kunnen we hier zeggen? Het is superhandig als een computer of programma honderden of duizenden eentonige bewerkingen met één klik kan uitvoeren. En nu leer je ook hoe je dit moet doen.
2. while
lus
De if-els-opdracht breidde onze programmeermogelijkheden aanzienlijk uit, waardoor het mogelijk werd programma's te schrijven die verschillende acties in verschillende situaties uitvoeren. Maar er is nog iets dat onze programma's een orde van grootte krachtiger zal maken: loops .
Java heeft 4 soorten lussen: while
, for
, for-each
en do-while
. We zullen nu ingaan op de allereerste hiervan.
Een while
lus is heel eenvoudig. Het bestaat uit slechts twee delen: een voorwaarde en een luslichaam . De hoofdtekst van de lus wordt keer op keer uitgevoerd zolang de voorwaarde is true
. Over het algemeen ziet een while
lus er zo uit:
while (condition)
statement;
while
lus met een enkele instructie
while (condition)
{
block of statements
}
while
lus met een blok instructies
Het is heel simpel. De instructie of het blok met instructies wordt keer op keer uitgevoerd zolang de lusvoorwaarde gelijk is aan true
.
Zo werkt het: eerst wordt de conditie gecontroleerd. Als het waar is, wordt de hoofdtekst van de lus uitgevoerd (de instructie of het blok met instructies ). Vervolgens wordt de voorwaarde opnieuw gecontroleerd en wordt de lus opnieuw uitgevoerd. En zo verder totdat de voorwaarde onwaar wordt.
Als de voorwaarde altijd waar is , zal het programma nooit stoppen met draaien. Het zal permanent in de lus blijven steken.
Als de voorwaarde de eerste keer dat deze wordt gecontroleerd onwaar is, wordt de hoofdtekst van de lus niet één keer uitgevoerd.
3. Voorbeelden van lussen
Hier zijn enkele praktische voorbeelden van loops in actie.
Code | Uitleg |
---|---|
|
Er worden 5 regels op het scherm weergegeven:
|
Code | Uitleg |
---|---|
|
Er worden 10 regels op het scherm weergegeven:
|
Code | Uitleg |
---|---|
|
Het programma leest getallen van het toetsenbord zolang er cijfers worden ingevoerd. |
Code | Uitleg |
---|---|
|
Het programma zal de brief eindeloosC op het scherm afdrukken. |
Code | Uitleg |
---|---|
|
Het programma leest regels van het toetsenbord
totdat |
In het vorige voorbeeld equals()
wordt de methode gebruikt om strings te vergelijken. Als de strings gelijk zijn, retourneert de functie true
. Als de strings niet gelijk zijn, wordt geretourneerd false
.
4. Lus binnen een lus
Toen je leerde over voorwaardelijke uitspraken, zag je dat je ze kunt gebruiken om complexe logica te implementeren door meerdere voorwaardelijke uitspraken te combineren. Met andere woorden, door een if
statement in een if
statement te gebruiken.
Je kunt hetzelfde doen met lussen. Om een lus binnen een lus te schrijven, moet u de tweede lus in de hoofdtekst van de eerste lus schrijven. Het zal er ongeveer zo uitzien:
while (condition for outer loop)
{
while (condition for inner loop)
{
block of statements
}
}
while
lus (met een blok instructies ) binnen een andere while
lus
Laten we drie taken bekijken.
Taak 1 . Laten we zeggen dat we een programma willen schrijven dat het woord Mom
4 keer op het scherm laat zien. Een lus is precies wat we nodig hebben. En onze code ziet er ongeveer zo uit:
Code | Uitleg |
---|---|
|
Er worden 4 regels op het scherm weergegeven:
|
Taak 2 . We willen een programma schrijven dat 5 letters A
s op één regel weergeeft. Om dit te doen, hebben we opnieuw een lus nodig. Dit is hoe de code eruit zal zien:
Code | Uitleg |
---|---|
|
In plaats van println() gebruiken we print() . Anders A zou elke letter op een aparte regel terechtkomen. De schermuitvoer is:
|
Taak 3 . We willen een rechthoek weergeven die bestaat uit de letter A
s. De rechthoek moet uit 4 rijen bij 5 kolommen bestaan. Om dit te bereiken, hebben we nu een geneste lus nodig. We nemen gewoon ons eerste voorbeeld (het voorbeeld waarin we 4 regels uitvoeren) en vervangen de code voor het uitvoeren van één regel door de code uit het tweede voorbeeld.
Code | Uitleg |
---|---|
|
De buitenste lus is paars. Het gebruikt de n variabele om het aantal iteraties van de lus te tellen. De binnenlus is groen. Het gebruikt de m variabele om het aantal herhalingen van de lus te tellen. We moeten de cursor expliciet naar de volgende regel verplaatsen nadat de binnenste lus is voltooid. Anders komen alle letters die het programma afdrukt op één regel terecht. De schermuitvoer is:
|
De buitenste en binnenste lussen moeten verschillende variabelen gebruiken om het aantal herhalingen van de lus te tellen. We moesten ook het System.out.println()
commando toevoegen na de binnenste lus, aangezien die lus de letter А
s op dezelfde regel weergeeft. Zodra de letters op een regel worden weergegeven, moet iemand de cursor naar een nieuwe regel verplaatsen.
5. Loops Java versus Pascal vergelijken
Velen van jullie hebben Pascal gestudeerd op de middelbare school. Bekijk deze vergelijking van while
lussen geschreven in Pascal en Java om het u gemakkelijker te maken het materiaal hier te begrijpen. Als je Pascal niet kent, sla dit deel dan gewoon over.
Pascal | Java |
---|---|
|
|
|
|
|
|
|
|
|
|
GO TO FULL VERSION