Boucle For
Une boucle permet d'exécuter un morceau de code autant de fois que nécessaire. Il existe différents types de boucles. En C#, si l'on souhaite exécuter un morceau de code un nombre précis de fois, on utilise la for loop.
Le modèle (syntaxe) d'une boucle for est le suivant :
for(initiation; condition; operation) {
// code to execute
}
Considérons un exemple utilisant cette syntaxe :
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { // Output "Hello World" ten times. for(int i = 0; i < 10; i++) { Console.WriteLine("Hello World"); } } } }
Remarque
i++est équivalent ài = i + 1. Cela incrémente la valeur de la variable de1. De même,i--décrémente la valeur de1.
int i = 0correspond à la partie d'initialisation. L'initialisation a lieu au démarrage de la boucle. Au début de la boucle, une nouvelle variable temporaire appeléeiest créée et initialisée à la valeur0.i < 10est la condition. La condition est vérifiée à chaque itération (répétition) de la boucle. La boucle continue d'exécuter le bloc de code tant que la condition est vraie.i++est l'opération à effectuer après chaque itération. L'opération consiste généralement en une incrémentation ou une décrémentation. Comme la valeur deiest incrémentée après chaque itération, la conditioni < 10devient fausse après 10 itérations, et la boucle s'arrête.
Il est important de comprendre que les trois composants de la boucle for — initialization, condition et operation — sont facultatifs. Vous pouvez en omettre certains, mais cela peut modifier le comportement de la boucle.
Bien que cela ne soit pas recommandé, il est possible de déclarer la variable de boucle en dehors de la boucle et de laisser la partie initialization vide. La boucle fonctionnera toujours, mais il faut être vigilant car cela peut entraîner des résultats inattendus si ce n'est pas géré correctement.
main.cs
12345678910111213141516using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10; i++) { Console.WriteLine("Hello World"); } } } }
Il est également possible de supprimer la partie operation et de la placer à la fin du bloc de code de la boucle. La boucle se comportera de la même manière, car la variable i sera toujours incrémentée après chaque itération.
main.cs
1234567891011121314151617using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10;) { Console.WriteLine("Hello World"); i++; } } } }
Notez que dans le code ci-dessus, nous avons tout de même placé un point-virgule (;) dans la syntaxe de la boucle à l'endroit où l'on attendait int i = 0. Ce point-virgule doit toujours être présent, que l'on crée ou non une variable de boucle.
Il est également possible de supprimer la condition de la boucle, mais cela rend la boucle infinie si elle n'est pas arrêtée manuellement (ce que nous aborderons dans les chapitres suivants).
main.cs
1234567891011121314151617using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { // In this case the variable `i` is useless so we don't create it. // The loop never ends for(;;) { Console.WriteLine("Hello World"); } } } }
Remarque
Nous avons tout de même inclus les deux points-virgules dans la syntaxe de la boucle
for(;;), ceux-ci sont essentiels, sinon le compilateur affichera des erreurs.
Comme la valeur de i change à chaque itération, il est possible de l'utiliser à notre avantage. Pour comprendre cela, examinons un programme simple qui affiche la valeur de i à chaque itération :
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 0; i < 10; i++) { Console.WriteLine(i); } } } }
Remarquez que cela se termine à 9 car cela commence avec le chiffre 0. Le nombre total d'itérations était de dix. Il est possible de modifier l'initialisation, la condition et l'opération pour afficher les dix nombres pairs de 2 à 20.
Remarque
Les nombres pairs sont les nombres divisibles par
2. Par exemple : 2, 4, 6, 8, 10, etc. Les nombres pairs incluent également le nombre0, mais nous ne traiterons que les nombres pairs supérieurs à0dans ces exemples.
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 2; i <= 20; i += 2) { Console.WriteLine(i); } } } }
Remarque
i += 2est une manière abrégée d'écrirei = i + 2. Cette syntaxe est également valable pour d'autres opérateurs, par exemplei -= 2,i *= 2,i /= 2,i %= 2, etc.
La boucle commence à 0 et augmente la valeur de i de 2 à chaque itération. Nous avons modifié la condition en i <= 20 afin que la boucle s'arrête à 20.
La logique ci-dessus sert à comprendre le fonctionnement d'une boucle for. Une logique beaucoup plus simple peut être utilisée pour afficher les dix premiers nombres pairs :
main.cs
1234567891011121314using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 1; i <= 10; i++) { Console.WriteLine(i * 2); } } } }
Dans ce cas, la condition est beaucoup plus simple. Par exemple, si nous voulons les 27 premiers nombres pairs, il faudrait connaître le 27ème nombre pair pour pouvoir former la condition dans la méthode précédente. Cependant, ici, il suffit simplement de modifier la condition en i <= 27 :
main.cs
1234567891011121314using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 1; i <= 27; i++) { Console.WriteLine(i * 2); } } } }
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Can you explain more about the different types of loops in C#?
What happens if I omit all three components in the for loop?
Can you show an example of a for loop that runs infinitely?
Awesome!
Completion rate improved to 1.59
Boucle For
Glissez pour afficher le menu
Une boucle permet d'exécuter un morceau de code autant de fois que nécessaire. Il existe différents types de boucles. En C#, si l'on souhaite exécuter un morceau de code un nombre précis de fois, on utilise la for loop.
Le modèle (syntaxe) d'une boucle for est le suivant :
for(initiation; condition; operation) {
// code to execute
}
Considérons un exemple utilisant cette syntaxe :
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { // Output "Hello World" ten times. for(int i = 0; i < 10; i++) { Console.WriteLine("Hello World"); } } } }
Remarque
i++est équivalent ài = i + 1. Cela incrémente la valeur de la variable de1. De même,i--décrémente la valeur de1.
int i = 0correspond à la partie d'initialisation. L'initialisation a lieu au démarrage de la boucle. Au début de la boucle, une nouvelle variable temporaire appeléeiest créée et initialisée à la valeur0.i < 10est la condition. La condition est vérifiée à chaque itération (répétition) de la boucle. La boucle continue d'exécuter le bloc de code tant que la condition est vraie.i++est l'opération à effectuer après chaque itération. L'opération consiste généralement en une incrémentation ou une décrémentation. Comme la valeur deiest incrémentée après chaque itération, la conditioni < 10devient fausse après 10 itérations, et la boucle s'arrête.
Il est important de comprendre que les trois composants de la boucle for — initialization, condition et operation — sont facultatifs. Vous pouvez en omettre certains, mais cela peut modifier le comportement de la boucle.
Bien que cela ne soit pas recommandé, il est possible de déclarer la variable de boucle en dehors de la boucle et de laisser la partie initialization vide. La boucle fonctionnera toujours, mais il faut être vigilant car cela peut entraîner des résultats inattendus si ce n'est pas géré correctement.
main.cs
12345678910111213141516using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10; i++) { Console.WriteLine("Hello World"); } } } }
Il est également possible de supprimer la partie operation et de la placer à la fin du bloc de code de la boucle. La boucle se comportera de la même manière, car la variable i sera toujours incrémentée après chaque itération.
main.cs
1234567891011121314151617using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10;) { Console.WriteLine("Hello World"); i++; } } } }
Notez que dans le code ci-dessus, nous avons tout de même placé un point-virgule (;) dans la syntaxe de la boucle à l'endroit où l'on attendait int i = 0. Ce point-virgule doit toujours être présent, que l'on crée ou non une variable de boucle.
Il est également possible de supprimer la condition de la boucle, mais cela rend la boucle infinie si elle n'est pas arrêtée manuellement (ce que nous aborderons dans les chapitres suivants).
main.cs
1234567891011121314151617using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { // In this case the variable `i` is useless so we don't create it. // The loop never ends for(;;) { Console.WriteLine("Hello World"); } } } }
Remarque
Nous avons tout de même inclus les deux points-virgules dans la syntaxe de la boucle
for(;;), ceux-ci sont essentiels, sinon le compilateur affichera des erreurs.
Comme la valeur de i change à chaque itération, il est possible de l'utiliser à notre avantage. Pour comprendre cela, examinons un programme simple qui affiche la valeur de i à chaque itération :
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 0; i < 10; i++) { Console.WriteLine(i); } } } }
Remarquez que cela se termine à 9 car cela commence avec le chiffre 0. Le nombre total d'itérations était de dix. Il est possible de modifier l'initialisation, la condition et l'opération pour afficher les dix nombres pairs de 2 à 20.
Remarque
Les nombres pairs sont les nombres divisibles par
2. Par exemple : 2, 4, 6, 8, 10, etc. Les nombres pairs incluent également le nombre0, mais nous ne traiterons que les nombres pairs supérieurs à0dans ces exemples.
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 2; i <= 20; i += 2) { Console.WriteLine(i); } } } }
Remarque
i += 2est une manière abrégée d'écrirei = i + 2. Cette syntaxe est également valable pour d'autres opérateurs, par exemplei -= 2,i *= 2,i /= 2,i %= 2, etc.
La boucle commence à 0 et augmente la valeur de i de 2 à chaque itération. Nous avons modifié la condition en i <= 20 afin que la boucle s'arrête à 20.
La logique ci-dessus sert à comprendre le fonctionnement d'une boucle for. Une logique beaucoup plus simple peut être utilisée pour afficher les dix premiers nombres pairs :
main.cs
1234567891011121314using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 1; i <= 10; i++) { Console.WriteLine(i * 2); } } } }
Dans ce cas, la condition est beaucoup plus simple. Par exemple, si nous voulons les 27 premiers nombres pairs, il faudrait connaître le 27ème nombre pair pour pouvoir former la condition dans la méthode précédente. Cependant, ici, il suffit simplement de modifier la condition en i <= 27 :
main.cs
1234567891011121314using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 1; i <= 27; i++) { Console.WriteLine(i * 2); } } } }
Merci pour vos commentaires !