TOC

This article has been localized into Dutch by the community.

Controlestructuren:

Lussen

Een andere essentiële techniek als je programmeert is lussen. Met een lus heb je de mogelijkheid om stuk code X keer uit te voeren. In C# heb je 4 mogelijke varianten die we allemaal even zullen bekijken.

De while lus

De while lus is waarschijnlijk de makkelijkste van de 4 types. De while lus voert een stuk code uit zolang aan een bepaalde voorwaarde wordt voldaan. Een klein voorbeeld, en dan wat meer uitleg:

using System;

namespace ConsoleApplication1
{
    class Program
    {
static void Main(string[] args)
{
    int number = 0;

    while(number < 5)
    {
Console.WriteLine(number);
number = number + 1;
    }

    Console.ReadLine();
}
    }
}

Als je de code uitvoert zal je zien dat je een mooie lijst krijgt met nummers van 0 tot 4. De int number wordt gedefinieerd als 0 en elke keer als de code in de lus uitgevoerd wordt verhoogd deze met 1. Maar waarom stopt de lijst bij 4, terwijl de code 5 zegt? Om te voldoen aan de voorwaarde (en dus als resultaat true te krijgen) moet de waarde van number kleiner zijn dan 5, dit is waarom de code niet meer uitgevoerd wordt als number gelijk is aan 5. Bij een while lus is het namelijk zo dat de voorwaarde geëvalueerd wordt alvorens de code uit te voeren.

De do lus

De do lus werkt omgekeerd (ten opzichte van de while lus). De do lus evalueert de voorwaarde na het doorlopen van de lus. Dit zorgt ervoor dat de code binnen de lust minstens éénmaal uitgevoerd wordt.

int number = 0;
do  
{  
    Console.WriteLine(number);  
    number = number + 1;  
} while(number < 5);

De output is echter hetzelfde: zodra het getal 5 is wordt de lus verlaten.

De for lus

De for lus is een beetje anders. Ze krijgt de voorkeur als je weet hoeveel keer je door de lus wil lopen of omdat je een variabele wil meegeven met het aantal. Hier is een voorbeeld van een for lus:

using System;

namespace ConsoleApplication1
{
    class Program
    {
static void Main(string[] args)
{
    int number = 5;

    for(int i = 0; i < number; i++)
Console.WriteLine(i);

    Console.ReadLine();
}
    }
}

Ook dit geeft dezelfde output, maar zoals je kan zien is de for lus compacter. Het bestaat uit 3 delen, we initialiseren een variabele om te tellen, geven een conditineel statement om te testen, en verhogen de counter (++ betekent hetzelfde als "variabele = variabele + 1").

Het eerste deel, waar we de variabele i declareren en de waarde 0 geven wordt maar één keer uitgevoerd, dit gebeurt voor de lus start. De laatste 2 stukken worden uitgevoerd telkens door de lus gelopen wordt. Elke keer wordt i vergeleken met onze variabele number, als i kleiner is dan number, wordt er nog eens door de lus gelopen, daarna wordt i met 1 verhoogd.

Voer het programma eens uit, en probeer daarna de variabele number groter of kleiner te maken dan 5. Je zal de lus zien reageren op de verandering.

De foreach lus

De laatste lus die we bekijken, is de foreach lus. Deze werkt met verzamelingen van objecten zoals arrays of andere ingebouwde lijst-types. In ons voorbeeld gebruiken we een van de simpele lijsten, een ArrayList genaamd. Deze werkt ongeveer op dezelfde manier als een array, maar meer daar over in een ander hoofdstuk.

using System;
using System.Collections;

namespace ConsoleApplication1
{
    class Program
    {
static void Main(string[] args)
{    
    ArrayList list = new ArrayList();
    list.Add("John Doe");
    list.Add("Jane Doe");
    list.Add("Someone Else");
   
    foreach(string name in list)
Console.WriteLine(name);

    Console.ReadLine();
}
    }
}

We definiëren een instantie van een ArrayList en dan voegen we er enkele items aan toe. Daarna gebruiken we de foreach lus om door elke item in de ArrayList te lopen. Hiermee veranderen we de name variabele telkens naar het item dat bereikt wordt. Op deze manier kunnen we de name variabele doorgeven aan de output. Je ziet dat we de name variabele definiëren als string. Je moet altijd doorgeven aan de foreach lus welk soort data type je verwacht uit de verzameling te halen. Indien er items van verschillende types in de lijst zouden zitten kan je de object klasse gebruiken in plaats van een specifiek data type om elk item als object uit de lijst te halen.

Als je met verzamelingen werkt zal je de foreach lus meestal gebruiken, omdat deze veel simpeler is dan de andere lussen voor dit soort handelingen.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!