Instructions d’itération : for foreach while
Instructions d'itération
Une boucle permet d'exécuter une ensemble d'instructions jusqu'à ce qu'une condition définie soit atteinte. Il existe plusieurs types de boucles à utiliser en fonction de votre besoin dans votre programme. En C#, on y trouve la plupart des itérations des autres langages avec en plus l'instruction foreach qui permet de parcourir facilement l'intégralité d'un tableau ou d'une collection.
Boucle for en C#
Pour la création d'un boucle for, il faut utiliser un entier qui fera office d'index de lecture d'une donnée dans un tableau. Nous allons décortiquer la structure du for.
On doit d'abord définir notre index soit ici i. Ensuite on précise quand la boucle s'arrête, la condition doit retourner une valeur de type booléen. Enfin on incrémente notre index. Dans l'exemple ci-dessous, on va parcourir les notes du tableau les unes après les autres.
// Liste d'entiers représentant des notes int[] notes = {10, 12, 8, 9, 19, 15}; for (int i=0; i<6; i++) { label.text += "Note " + i.ToString(); }
Boucle foreach en C#
Contrairement à la boucle for où il faut prévoir une variable à indexer pour parcourir le tableau, la boucle foreach se charge de parcourir tout le tableau ou collection plus simplement.
// Liste d'entiers représentant des notes int[] notes = {10, 12, 8, 9, 19, 15}; foreach (int note in notes) { label.text += "Note " + i.ToString(); }
Boucles while en C#
La différence avec le for et le foreach est sur la condition de sortie de la boucle. La condition peut être n'importe quelle condition retournant un booléen soit true ou false.
Exemples :
int[] notes = {0, 1, 2, 3, 4, 5}; int x = 0; while (x < 6) { label.txt += array1[x].ToString(); x++; }
Boucles do while et C#
La différence avec une boucle do-while par rapport à while c'est que dans tous les cas on passera au moins une fois dans la boucle. Il est donc important de s'assurer que l'on peut parcourir une fois le code dans la boucle car vous risquez de faire planter votre programme.
Exemple :
int x = 0; do { label.txt = "Ligne numéro : " + i.ToString(); x++; } while(x < 6);