Programmation Visual Basic .NET/Boucles

Il existe plusieurs structures de boucles en VB.NET.

Boucle Do...Loop Until modifier

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

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

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

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

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

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