Visual Basic 2012 Voorbeelden
   

visual basic 2012 broncode voorbeelden

Blijf op de hoogte van de recente aanpassingen op vbvoorbeelden!

Microsoft Visual Studio 2012Microsoft Developers Network - Visual BasicMicrosoft .NET Framework

7.10. For Each Next

Print Email Deel op Twitter Deel op Facebook

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.

Een nieuwe iteratiestructuur is bruikbaar voor het benaderen van de elementen van een array : de For Each ... Next iteratiestructuur is bruikbaar om met elk element in de array een bepaalde actie uit te voeren.

De syntax van deze iteratie structuur is de volgende :
For Each <element> In <collection>
   <body-iteration>
Next
Alle elementen worden hier één voor één mee overlopen en de body van de lus zal hier dus voor elk element worden uitgevoerd.  De elementvariabele die gebruikt wordt dient gedeclareerd te zijn van hetzelfde datatype als het datatype van de elementen van de array die men overloopt.
In onderstaand voorbeeld gaat het om arrays met elementen van het datatype Integer dus moet de elementvariabele ook van het type Integer gedeclareerd zijn (1).

Men verwijst hier in de In clausule naar de array door simpelweg de identifier van deze arrayvariabele te gebruiken.  Hier dus row, matrix of cube :
Visual Basic 2012 Broncode - Codevoorbeeld 137
Module Example1
    Sub Main()
        Dim element As Integer                                             ' (1)
        '
        Dim row() As Integer = {1, 2, 3, 4, 5, 6}
        For Each element In row
            Console.Write(element & " ")
        Next
        Console.WriteLine()
        '
        Dim matrix(,) As Integer = {{1, 2, 3, 4, 5, 6}, {7, 8, 9, 10, 11, 12}}
        For Each element In matrix
            Console.Write(element & " ")
        Next
        Console.WriteLine()
        '
        Dim cube(,,) As Integer = {{{1, 2, 3}, {4, 5, 6}}, _
                                   {{7, 8, 9}, {10, 11, 12}}, _
                                   {{13, 14, 15}, {16, 17, 18}}, _
                                   {{19, 20, 21}, {22, 23, 24}}}
        For Each element In cube
            Console.Write(element & " ")
        Next

        Console.ReadLine()
    End Sub
End Module
Console Application Output
1 2 3 4 5 6
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Zoals je merkt worden bij meer dimensionale arrays de elementen in een For Each ... Next iteratiestructuur op dezelfde wijze overlopen als ze in het geheugen zitten bewaard.

Een beperking met deze For Each ... Next iteratiestructuur is dat je de elementen via de elementexpressie enkel (nuttig) kan gebruiken om uit te lezen.
Visual Basic 2012 Broncode - Codevoorbeeld 138
Module Example2
    Sub Main()
        Dim numbers As Integer() = {1, 2, 3, 4, 5}
        '
        Dim element As Integer
        For Each element In numbers
            Console.Write(element & " ")
        Next
        Console.WriteLine()
        '
        Dim sum As Integer
        For Each element In numbers
            sum += element
            element = 10                                                   ' (1)
        Next
        Console.WriteLine("sum : " & sum)
        '
        For Each element In numbers
            Console.Write(element & " ")
        Next
        '
        Console.ReadLine()
    End Sub
End Module
Console Application Output
1 2 3 4 5
sum : 15
1 2 3 4 5
Regel (1) is nutteloos gezien er per uitvoering van de body van de lus een kopie van de inhoud van steeds een volgend element uit de array zal worden toegekend aan de element variabele.  Men past dus zo wel de inhoud van de elementvariabele aan, of men overschrijft dus die toegekende waarde, maar men past zo niet de inhoud van het element van de array zelf aan.

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.