Cours

C# Leçon 3

Conditions et boucles

Prendre des décisions avec if et switch, répéter des actions avec for et while.

20 min

À la fin de cette leçon, tu sauras

  • Écrire des conditions avec if, else if, else
  • Répéter un bloc avec for et while
  • Choisir entre plusieurs cas avec switch

if, else if, else

int note = 14;

if (note >= 16)
{
    Console.WriteLine("Très bien");
}
else if (note >= 10)
{
    Console.WriteLine("Validé");
}
else
{
    Console.WriteLine("À retravailler");
}

Les comparaisons : == (égal), != (différent), <, >, <=, >=. Pour combiner : && (et), || (ou), ! (non). En C#, les accolades vont souvent sur leur propre ligne : c'est la convention de Microsoft.

La boucle for

for (int i = 1; i <= 5; i++)
{
    Console.WriteLine($"Tour {i}");
}

Trois parties : le départ (int i = 1), la condition pour continuer (i <= 5) et l'action à chaque tour (i++, qui ajoute 1).

La boucle while

int essais = 3;
while (essais > 0)
{
    Console.WriteLine($"Il te reste {essais} essais");
    essais--;
}

while répète tant que la condition est vraie. On l'utilise quand on ne sait pas à l'avance combien de tours il faudra.

switch

string jour = "samedi";

switch (jour)
{
    case "samedi":
    case "dimanche":
        Console.WriteLine("Week-end !");
        break;
    default:
        Console.WriteLine("Semaine");
        break;
}

Attention : chaque case se termine par break;. Le default s'exécute si aucun cas ne correspond.

À toi de jouer

Avec une boucle for, affiche la table de multiplication de 7, de 7 × 1 à 7 × 10. Chaque ligne doit afficher le résultat, par exemple avec Console.WriteLine($"7 x {i} = {7 * i}");.

Program.cs
  • Une boucle for avec un compteur i
  • La boucle va jusqu'à 10
  • Le compteur augmente à chaque tour
  • Chaque tour affiche un calcul avec 7
Bloqué ? Voir une solution
for (int i = 1; i <= 10; i++)
{
    Console.WriteLine($"7 x {i} = {7 * i}");
}

Quiz

1Quel opérateur teste l'égalité en C# ?
2Combien de fois s'exécute for (int i = 0; i < 4; i++) ?
3Que se passe-t-il si on oublie break; dans un case qui contient des instructions ?