C’est parti pour un second round dans cette découverte de la programmation avec C#.
Si tu n’as pas lu la première partie, cliques sur ce lien.
3.5 Le contrôle du flux (Control flow)
Encore une notion fondamentale de programmation, le contrôle de flux (control flow). C’est quoi le control flow ? C’est contrôler la direction que doit prendre ton code… Okay je t’ai perdu…
Quand ton ordi lit le code, il va suivre les instructions lignes par lignes. Il crée un flux. Avec le control flow, tu vas pouvoir rediriger les instructions en fonction de certaines conditions.
3.5.1 If statement
Imagines qu’il est midi et que tu décides d’aller acheter un sandwich à la boulangerie du coin.
Ton camarade codeur est en plein déboggage et n’a pas le temps d’y aller avec toi. Il te demande si tu peux lui prendre un sandwich.
Par contre, il précise que s’il n’y a pas de sandwich au poulet, tu lui prends à la place un sandwich au fromage.
Tu cours à la boulangerie et il n’y a plus de sandwich au poulet donc pour ton pote, tu lui prends un au fromage.
En code ça donne ça :
int numberOfChickenSand = 1;
if (numberOfChickenSand == 0)
{
Console.WriteLine("J'achète pour mon pote un sandwich au fromage.");
}
else
{
Console.WriteLine("Je lui prend un sandwich au poulet.");
}
D’après toi que fait ce code ?
Modifies la variable numberOfChickenSand avec la valeur 0 et relances ton code.
Vois tu la différence ?
3.5.2 Switch Case
Maintenant tu es en train de te détendre en regardant Netflix. Bon on est d’accord il y a tellement de choix que tu perds plus ton temps à choisir qu’à mater ta série préférée. Bref…
Voilà que tu as déchiffré l’algorithme de Netflix et que celui ci te propose que quelque choix en fonction du nombre de temps que tu passes à coder.
Le truc c’est que tu peux coder 30 minutes, 1 heure, 2 heures, 3 heures, 4 heures 30 etc… Avec des if else statement, tu vas vite te retrouver avec beaucoup de ligne.
Ici on a une donnée (le temps passé à coder) et en fonction de cette donnée, il y a un choix. Pour cela, on va utiliser le switch case statement :
int numberOfCoding = 6;
switch (numberOfCoding)
{
case 1:
Console.WriteLine("CS 50");
break;
case 2:
Console.WriteLine("CS 50");
break;
case 3:
Console.WriteLine("Dix pour cent");
break;
case 4:
Console.WriteLine("Suits");
break;
case 5:
Console.WriteLine("Emily in Paris");
break;
case 6:
Console.WriteLine("Lupin");
break;
default:
Console.WriteLine("Ce cas de figure n'existe pas...");
break;
}
D’après toi que fait le code ?
Changes la valeur de numberOfCoding et amuses toi un instant…
3.6 Les boucles (Loops)
Dernière notion fondamentale et tu seras prêt pour faire des petits programmes sympa.
3.6.1 For loop
Imaginons qu’il est 18h et que tu sors faire une petite pause en prenant l’air tout en écoutant une bonne musique.
Il y a un song que tu veux écouter pendant ta pause plusieurs fois.
A l’ancienne, dès que la chanson se terminait, tu appuyais à nouveau sur play et ainsi de suite.
Comme d’habitude, tu vas créer un nouveau projet MyFirstLoops et colles le code suivant :
Console.WriteLine("Plays my favorite song");
Console.WriteLine("Plays my favorite song");
Console.WriteLine("Plays my favorite song");
Console.WriteLine("Plays my favorite song");
A ton avis, que fait ce code ?
C’est répétitif… il doit bien y avoir un moyen d’écouter ton song préféré sans avoir à appuyer plusieurs fois sur play.
Changes ce précédent code avec celui là :
for (int i = 0; i < 4; i++)
{
Console.WriteLine("Plays my favorite song");
}
Alors ?
Cela fait exactement la même chose que le précédent code sans écrire plusieurs fois la même chose.
Cette notion s’appelle une boucle (loop) et te permet de répéter plusieurs fois la même chose (le code entre les accolades).
Ici, tu viens de voir la boucle for (For loop).
Mets en commentaire le précédent code puis colles celui ci :
Console.WriteLine("--- i ---");
for (int i = 0; i < 4; i++)
{
Console.WriteLine(i);
}Console.WriteLine("--- index ---");
for (int index = 0; index < 4; index++)
{
Console.WriteLine(index);
}Console.WriteLine("--- otherVariable ---");
for (int otherVariable = 0; otherVariable < 4; otherVariable++)
{
Console.WriteLine(otherVariable);
}
D’après toi que fait ce code ?
Comme tu peux le voir, il fait des boucles identiques commençant par 0.
En informatique, on a l’habitude de commencer à compter à partir de 0, commences à t’y habituer…
Avec la boucle for, tu peux lui donner une variable de départ int i, une condition de fin i < 4 et après chaque tour la valeur de i s’incrémente (i++).
3.6.2 While loop
Passons à un autre type de boucle, la boucle while. Contrairement, à la boucle for qui a forcément une condition de fin définie, la boucle while peut continuer à boucler tant que c’est vrai.
Qu’est ce que je veux dire par ça…
Imagines que tu oublies le chargeur de ton ordi chez toi et que tu es en train d’apprendre à coder dans un lieu public.
Tu vas continuer à coder tant que la batterie de ton ordi tient le coup, mais dès qu’elle est vidée, tu es forcé de t’arrêter (comme par hasard tu as oublié de charger ton ordi…).
En code, ça va te donner un truc comme ça : (crée un nouveau projet MyWhileLoop et colles celui là)
int batterie = 100;
while (batterie > 10)
{
Console.WriteLine($"Niveau de batterie : {batterie}");
Console.WriteLine("Tu codes");
batterie -= 10;
}
Exécutes ce code.
Tant que la valeur de la batterie est supérieur à 10, le message Tu Codes va s’afficher sur le terminal. Et dès qu’elle est inférieur à 10, tu sors de la boucle while.
Maintenant changes ce qui est entre les parenthèses par true et lances le code…
Une boucle infinie ! Arrête le code avec ctrl + c et éteins ton terminal.
Lorsque tu utilises une boucle while, n’oublies pas de mettre une condition d’arrêt.
Ce qu’on a fait dans le code précédent c’est qu’on a décrémenté de 10 la variable batterie pour qu’un moment il sera inférieur à la condition d’arrêt.
En cherchant un peu sur le net, tu vas découvrir qu’il existe une variante du while le do while. Ce qu’il va faire c’est qu’il va exécuter une première fois le code puis rentrer dans la boucle.
4. Points importants à retenir
- On va vu que C# fait parti de l’écosystème .NET qui est une réponse à Java pour créer du code sous Windows. Cet écosystème est composé du framework .NET, du langage C#, d’un éditeur de code Visual Code et d’un Common Language Runtime
- On a vu la première notion fondamentale en informatique, l’utilisation des variables. En C#, il existe 2 types, un type primitif qui stock la valeur donnée et un type référence qui va pointer la valeur vers un espace en mémoire. Les principaux sont les integer (int), les nombres à virgule double (double), les caractères individuels (char), les valeurs booléens (bool) et les chaînes de caractères (string).
- On a vu comment contrôler la direction de la lecture du code avec les if statement et les switch case
- Et on a vu comment répéter plusieurs fois la même chose avec les boucles for et les while.
5. Pour aller plus loin
Rien de tel que la documentation de Microsoft…