Découvrir la logique conditionnelle avec des instructions de branches et de boucles
Ce tutoriel explique comment écrire du code qui examine des variables et modifie le chemin d’exécution en fonction de ces variables. Vous utiliserez votre navigateur pour écrire en C# de manière interactive et afficher les résultats de la compilation et de l’exécution de votre code. Ce tutoriel comporte une série de leçons visant à explorer les constructions de type branches et boucles en C#. Ces leçons présentent les concepts de base du langage C#.
Conseil
Pour coller un extrait de code dans le mode focus, vous devez utiliser le raccourci clavier (Ctrl + v ou cmd + v).
Prendre des décisions à l’aide de l’instruction if
Exécutez le code suivant dans la fenêtre interactive. Sélectionnez le bouton Entrer en mode focus. Tapez ensuite le bloc de code suivant dans la fenêtre interactive, puis sélectionnez Exécuter :
int a = 5;
int b = 6;
if (a + b > 10)
Console.WriteLine("The answer is greater than 10.");
Si vous l’exécutez sur votre environnement, suivez plutôt les instructions de la version locale.
Modifiez la déclaration de b
pour que la somme soit inférieure à 10 :
int b = 3;
Sélectionnez à nouveau le bouton Exécuter. La réponse étant inférieure à 10, rien ne s’affiche. La condition que vous testez a une valeur false. Vous n’avez pas de code à exécuter, car vous avez uniquement écrit l’une des branches possibles pour une instruction if
: la branche true.
Conseil
Durant votre exploration de C# (ou de tout autre langage de programmation), vous commettrez des erreurs d’écriture du code. Le compilateur détectera ces erreurs et vous les signalera. Si la sortie contient des messages d’erreur, vérifiez attentivement l’exemple de code ainsi que le code dans la fenêtre interactive pour identifier les corrections à apporter. Cet exercice vous aidera à mieux comprendre la structure du code C#.
Le premier exemple montre la puissance de l’instruction if
et des types booléens. Un booléen est une variable qui peut avoir l’une des deux valeurs suivantes : true
ou false
. C# définit un type spécial, bool
, pour les variables booléennes. L’instruction if
vérifie la valeur d’un bool
. Quand la valeur est true
, l’instruction qui suit if
s’exécute. Autrement, il est ignoré.
Ce processus de vérification des conditions et d’exécution des instructions en fonction de ces conditions est performant. Poursuivons notre exploration.
Utiliser if et else ensemble
Pour exécuter un code différent dans les branches true et false, vous créez une branche else
qui s’exécute quand la condition a une valeur false. Procédez comme suit :
int a = 5;
int b = 3;
if (a + b > 10)
Console.WriteLine("The answer is greater than 10");
else
Console.WriteLine("The answer is not greater than 10");
L’instruction qui suit le mot clé else
s’exécute uniquement quand la condition testée a une valeur false
. La combinaison de if
et else
avec des conditions booléennes offre les hautes performances dont vous avez besoin.
Important
La mise en retrait sous les instructions if
et else
a simplement pour but de faciliter la lecture.
Le langage C# ne considère pas la mise en retrait ou les espaces blancs comme des éléments significatifs.
L’instruction qui suit le mot clé if
ou else
sera exécutée en fonction de la condition. Tous les exemples de ce tutoriel suivent une pratique courante qui consiste à mettre en retrait les lignes en fonction du flux de contrôle des instructions.
Étant donné que la mise en retrait n’est pas significative, vous devez utiliser {
et }
pour indiquer quand vous souhaitez inclure plus d’une instruction dans le bloc qui s’exécute de manière conditionnelle. Les programmeurs C# utilisent généralement les accolades pour toutes les clauses if
et else
. L’exemple suivant est le même que celui que vous avez créé. Testez le code.
int a = 5;
int b = 3;
if (a + b > 10)
{
Console.WriteLine("The answer is greater than 10");
}
else
{
Console.WriteLine("The answer is not greater than 10");
}
Conseil
Dans le reste de ce didacticiel, tous les exemples de code incluent les accolades, conformément aux pratiques acceptées.
Vous pouvez tester des conditions plus complexes :
int a = 5;
int b = 3;
int c = 4;
if ((a + b + c > 10) && (a == b))
{
Console.WriteLine("The answer is greater than 10");
Console.WriteLine("And the first number is equal to the second");
}
else
{
Console.WriteLine("The answer is not greater than 10");
Console.WriteLine("Or the first number is not equal to the second");
}
Le symbole ==
teste l’égalité. ==
se distingue du test d’égalité d’attribution, que nous avons vu avec a = 5
.
&&
représente « et ». Cela signifie que les deux conditions doivent être true pour que l’instruction s’exécute dans la branche true. Ces exemples montrent également que vous pouvez avoir plusieurs instructions dans chaque branche conditionnelle, à condition de les mettre entre {
et }
.
Vous pouvez également utiliser ||
pour représenter « ou ».
int a = 5;
int b = 3;
int c = 4;
if ((a + b + c > 10) || (a == b))
{
Console.WriteLine("The answer is greater than 10");
Console.WriteLine("Or the first number is equal to the second");
}
else
{
Console.WriteLine("The answer is not greater than 10");
Console.WriteLine("And the first number is not equal to the second");
}
Modifiez les valeurs de a
, b
et c
et passez de &&
à ||
et inversement. Vous comprendrez mieux comment fonctionnent les opérateurs &&
et ||
.
Utiliser des boucles pour répéter des opérations
Un autre concept important pour créer des programmes plus volumineux est celui des boucles. Vous allez utiliser des boucles pour répéter des instructions que vous souhaitez exécuter plusieurs fois. Exécutez le code suivant dans la fenêtre interactive :
int counter = 0;
while (counter < 10)
{
Console.WriteLine($"Hello World! The counter is {counter}");
counter++;
}
L’instruction while
vérifie une condition et exécute l’instruction qui suit while
. Elle répète la vérification de la condition et l’exécution de ces instructions jusqu'à ce que la condition soit false.
Cet exemple contient un nouvel opérateur. ++
après la variable counter
est l’opérateur d’incrémentation. Il ajoute 1 à la valeur de compteur et stocke cette valeur dans la variable de compteur.
Important
Assurez-vous que la condition de boucle while
ne devienne pas false quand vous exécutez le code. Dans le cas contraire, vous allez créer une boucle infinie dans laquelle votre programme ne se terminera jamais. Nous n’allons pas le démontrer ici, car le moteur qui exécute votre code expirerait et votre programme n’afficherait aucune sortie.
La boucle while
teste la condition avant d’exécuter le code qui suit while
. La boucle do
... while
exécute d’abord le code, puis vérifie la condition. Il se présente comme ceci :
int counter = 0;
do
{
Console.WriteLine($"Hello World! The counter is {counter}");
counter++;
} while (counter < 10);
Cette boucle do
et la boucle antérieure while
fonctionnent de manière identique.
Passons maintenant à une dernière instruction de boucle.
Utiliser la boucle for
Une autre instruction de boucle commune présente dans le code C# est la boucle for
. Exécutez le code suivant dans la fenêtre interactive :
for (int counter = 0; counter < 10; counter++)
{
Console.WriteLine($"Hello World! The counter is {counter}");
}
Cette boucle fonctionne de manière identique à la boucle while
et la boucle do
que vous avez déjà utilisées. L’instruction for
comprend trois parties qui contrôlent son fonctionnement.
La première partie est l’initialiseur for : int counter = 0;
déclare que counter
est la variable de boucle et définit sa valeur initiale sur 0
.
La partie centrale est la condition for : counter < 10
déclare que cette boucle for
continue à s’exécuter tant que la valeur de compteur est inférieure à 10.
La dernière partie est l’itérateur for : counter++
indique comment modifier la variable de boucle après l’exécution du bloc qui suit l’instruction for
. Il spécifie ici que counter
doit être incrémenté de 1 chaque fois que le bloc s’exécute.
Vérifiez-le par vous-même. Réalisez les essais suivants :
- Modifiez l’initialiseur pour définir le démarrage à une valeur différente.
- Modifiez la condition pour définir l’arrêt à une valeur différente.
Une fois terminé, vous allez vous-même écrire des codes pour mettre en pratique ce que vous avez appris.
Il existe une autre instruction de bouclage qui n’est pas abordée dans ce tutoriel : l’instruction foreach
. L’instruction foreach
répète son instruction pour chaque élément d’une séquence d’éléments. Elle est le plus souvent utilisée avec des collections. Elle est donc abordée dans le tutoriel suivant.
Création de boucles imbriquées
Une boucle while
, do
ou for
peut être imbriquée dans une autre boucle pour créer une matrice à l’aide de la combinaison de chaque élément de la boucle externe avec chaque élément de la boucle interne. Faisons cela pour créer un ensemble de paires alphanumériques afin de représenter des lignes et des colonnes.
Une boucle for
peut générer les lignes :
for (int row = 1; row < 11; row++)
{
Console.WriteLine($"The row is {row}");
}
Une autre boucle peut générer les colonnes :
for (char column = 'a'; column < 'k'; column++)
{
Console.WriteLine($"The column is {column}");
}
Vous pouvez imbriquer une boucle à l’intérieur de l’autre pour former des paires :
for (int row = 1; row < 11; row++)
{
for (char column = 'a'; column < 'k'; column++)
{
Console.WriteLine($"The cell is ({row}, {column})");
}
}
Vous pouvez voir que la boucle externe s’incrémente une fois pour chaque exécution complète de la boucle interne. Inversez l’imbrication des lignes et des colonnes et observez les modifications par vous-même.
Combiner des branches et des boucles
Maintenant que vous avez vu l’instruction if
et la création de boucles en langage C#, vérifiez si vous pouvez écrire un code C# pour obtenir la somme de tous les entiers de 1 à 20 divisibles par 3. Voici quelques conseils :
- L’opérateur
%
vous donne le reste d’une opération de division. - L’instruction
if
vous donne la condition pour vérifier si un nombre doit être inclus dans la somme. - La boucle
for
peut vous aider à répéter une série d’étapes pour tous les nombres de 1 à 20.
Essayez par vous-même et vérifiez le résultat. Vous devriez obtenir 63 comme réponse.
Terminer le test
Avez-vous obtenu un résultat similaire à celui-ci ?
int sum = 0;
for (int number = 1; number < 21; number++)
{
if (number % 3 == 0)
{
sum = sum + number;
}
}
Console.WriteLine($"The sum is {sum}");
Félicitations !
Vous avez terminé le tutoriel interactif « Branches et boucles ». Vous pouvez sélectionner le lien de collection de listes ci-dessous pour démarrer le tutoriel interactif suivant, ou vous pouvez visiter le site .NET pour télécharger le Kit de développement logiciel (SDK) .NET, créer un projet sur votre ordinateur et continuer à coder. La section « Étapes suivantes » vous ramène à ces tutoriels.
Pour en savoir plus sur ces concepts, consultez ces articles :
Vous avez un défi avec cette section ? Si c'est le cas, faites-nous part de vos commentaires pour que nous puissions l'améliorer.