|
Dit artikel is gepubliceerd op woensdag 28 april 2010 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 Broncode Module Example1
Sub Main()
Dim element As Integer
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 ModuleDownload Visual Basic Broncode Bekijk deze Broncode in Visual C#
Visual Basic 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 gestockeerd.
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 Broncode 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
Next
Console.WriteLine("sum : " & sum)
For Each element In numbers
Console.Write(element & " ")
Next
Console.ReadLine()
End Sub
End ModuleDownload Visual Basic Broncode Bekijk deze Broncode in Visual C#
Visual Basic 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 woensdag 28 april 2010 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
Visual Basic 2008 & 2010 Boeken
Berichten
|