Aller au contenu

Programmation Visual Basic .NET/Boucles

Un livre de Wikilivres.

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

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