Contenu du cours
Bases de C#
Bases de C#
Boucle For
Une boucle nous permet d'exécuter un morceau de code autant de fois que nous le souhaitons. Il existe différents types de boucles. En C#, si nous voulons exécuter un morceau de code un nombre spécifique de fois, nous utilisons la for loop
.
Le modèle (syntaxe) d'une boucle for est le suivant :
Considérons un exemple où nous utilisons cette syntaxe :
main
using 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 = 0
est la partie d'initialisation. L'initialisation se produit lorsque la boucle commence. Au début de la boucle, une nouvelle variable temporaire appeléei
est créée et initialisée avec une valeur de0
.i < 10
est 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 inclus tant que la condition est vraie.i++
est l'opération à effectuer après chaque itération. L'opération est généralement une incrémentation ou une décrémentation. Étant donné que la valeur dei
est incrémentée après chaque itération, la conditioni < 10
devient 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 omettre l'un d'eux, mais cela pourrait modifier le comportement de la boucle.
Bien que cela ne soit pas recommandé, vous pouvez déclarer la variable de boucle en dehors de la boucle et laisser la partie initialization
vide. Cela signifie que la boucle fonctionnera toujours, mais vous devez être prudent car cela pourrait entraîner des résultats inattendus si elle n'est pas correctement gérée.
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10; i++) { Console.WriteLine("Hello World"); } } } }
Nous pouvons également supprimer la partie operation
et la placer à la fin du bloc de code de la boucle. La boucle se comportera de la même manière qu'avant, car la variable i
est toujours incrémentée après chaque itération.
main
using 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 toujours placé un point-virgule (;
) dans la syntaxe de la boucle là où int i = 0
était attendu. Ce point-virgule doit toujours être présent, que nous créions ou non une variable de boucle.
Il est également possible de supprimer la condition de la boucle, mais cela fait que la boucle s'exécute indéfiniment si elle n'est pas terminée manuellement (ce que nous apprendrons plus en détail dans les chapitres suivants).
main
using 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"); } } } }
Note
Nous avons toujours inclus les deux points-virgules dans la syntaxe de la boucle
for(;;)
, ceux-ci sont essentiels sinon le compilateur affichera des erreurs.
Puisque la valeur de i
change à chaque itération, nous pouvons l'utiliser à notre avantage. Pour comprendre cela, regardons un programme simple qui affiche la valeur de i
à chaque itération :
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 0; i < 10; i++) { Console.WriteLine(i); } } } }
Notez qu'il se termine à 9
car il commence par le chiffre 0
. Le nombre total d'itérations était de dix. Nous pouvons 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 à0
dans ces exemples.
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 2; i <= 20; i += 2) { Console.WriteLine(i); } } } }
Remarque
i += 2
est une manière plus courte 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 changé la condition en i <= 20
pour que la boucle s'arrête à 20
.
La logique ci-dessus était pour comprendre le fonctionnement d'une boucle for. Nous pouvons utiliser une logique beaucoup plus simple pour afficher les dix premiers nombres pairs :
main
using 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, nous devrons savoir quel est le 27ème nombre pair pour pouvoir former la condition pour la méthode précédente, cependant dans ce cas, nous devons simplement modifier la condition à i <= 27
:
main
using 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 !