Programmation Visual Basic .NET/Boucles
Il existe plusieurs structures de boucles en VB.NET.
Boucle Do...Loop Until
[modifier | modifier le wikicode]Un Do...Loop Until
est une boucle qui itère tant que sa condition de sortie est fausse, cette dernière est testée à chaque fin de boucle, donc le programme y passe forcément au moins une fois.
Dim Entier1 As Integer = 4
Do
Entier1 = Entier1 + 1
Loop Until Entier1 > 3
MsgBox(Entier1) ' 5
Boucle Do...Loop While
[modifier | modifier le wikicode]Une boucle Do...Loop While
tourne tant que sa condition d'itération est vraie, cette dernière est testée à chaque fin de boucle, donc le programme y passe forcément au moins une fois.
Dim Entier1 As Integer = 4
Do
Entier1 = Entier1 + 1
Loop While Entier1 < 3
MsgBox(Entier1) ' 5
Boucle Do Until...Loop
[modifier | modifier le wikicode]Un Do Until...Loop
est une boucle qui itère tant que sa condition de sortie est fausse (comme Do Until...Loop
), cette dernière est testée à chaque début de boucle, donc le programme n'y passe pas forcément.
Dim Entier1 As Integer = 4
Do Until Entier1 > 3
Entier1 = Entier1 + 1
Loop
MsgBox(Entier1) ' 4
Boucle Do While...Loop
[modifier | modifier le wikicode]De la même manière, Do While...Loop
tourne tant que sa condition d'itération est vraie (comme Do Until...Loop
) et la teste en amont de chaque boucle.
Dim Entier1 As Integer = 4
Do While Entier1 < 3
Entier1 = Entier1 + 1
Loop
MsgBox(Entier1) ' 4
Boucle For
[modifier | modifier le wikicode]Une boucle For
s'exécute un certain nombre de fois, relativement prédéfinie car la valeur du compteur peut changer en cours de route.
Dim Entier1 As Integer = 4
For a = 1 To 10
Entier1 = Entier1 + 1
Next
MsgBox(Entier1) ' 14
Cet exemple s'exécute 10 fois, a = 1, puis 2... puis 10.
Pour changer le sens du compteur :
For a = 10 To 1 Step -1
Entier1 = Entier1 + 1
Next
MsgBox(Entier1) ' 14
S'exécute aussi 10 fois, mais a = 10, puis 9... puis 1.
Remarque : à tout moment il est possible de sortir de la boucle sans attendre sa fin avec Exit for
.
Boucle For Each
[modifier | modifier le wikicode]Une boucle For Each
itère pour chaque entrée d'un tableau ou autre objet itérable, qui doit implémenter les interfaces IEnumerable
ou IEnumerator
. L'implémentation de IList
par Array
autorise un tableau à être utilisé comme un objet, car IList
hérite de IEnumerable
.
Dim Liste As Integer() = { 1, 2, 4 }
Dim Ligne As Integer
For Each Ligne In Liste
MsgBox(Ligne) ' affiche 1, puis 2, puis 4
Next