Bases de C/C++

Conditions, boucles et switch en C et C++

Dans cette leçon, vous allez combiner des boucles et une instruction switch dans un petit programme qui calcule une moyenne et attribue une mention.

Introduction

L'instruction if choisit une branche selon qu'une condition est vraie ou fausse, switch traite des cas à valeurs distinctes, et les boucles répètent un bloc jusqu'à une condition d'arrêt. La syntaxe de ces instructions est presque identique en C et en C++.

Points importants

  • Activez les avertissements du compilateur (compiler warnings) et corrigez-les tous.
  • Comprenez bien le type et la durée de vie (lifetime) de chaque valeur.
  • Vérifiez toujours les données d'entrée et les limites des indices de tableau.

Voir comment ça marche

Déplacez le curseur pour changer la note. L'organigramme éclaire le chemin suivi par le programme, et la ligne de code correspondante est mise en évidence.

Exemples de code C et C++

C
Exécuter →
main.c
#include <stdio.h>

int main(void) {
    int scores[] = {92, 71, 84};
    int total = 0;
    for (int i = 0; i < 3; ++i) total += scores[i];
    int average = total / 3;
    switch (average / 10) {
        case 10: case 9: puts("Grade A"); break;
        case 8: puts("Grade B"); break;
        default: puts("Keep practicing");
    }
    return 0;
}
Résultat de l’exécution
Grade B
C++
Exécuter →
main.cpp
#include <iostream>
#include <vector>

int main() {
    std::vector<int> scores{92, 71, 84};
    int total = 0;
    for (int score : scores) total += score;
    switch ((total / static_cast<int>(scores.size())) / 10) {
        case 10: case 9: std::cout << "Grade A\n"; break;
        case 8: std::cout << "Grade B\n"; break;
        default: std::cout << "Keep practicing\n";
    }
}
Résultat de l’exécution
Grade B

Comparaison entre C et C++

La boucle for additionne les trois notes pour calculer la moyenne, puis switch utilise average / 10 pour choisir la mention. Utilisez toujours des accolades, même quand le bloc ne fait qu'une ligne, et pensez à mettre break à la fin de chaque case pour que le programme ne passe pas par erreur au case suivant. L'indice d'un tableau doit lui aussi toujours rester dans les limites.

C

C utilise de petites fonctions procédurales et montre ouvertement comment les données sont représentées en mémoire.

C++

C++ permet toujours de travailler à bas niveau, mais ajoute des types de bibliothèque et des abstractions plus sûres.

Exercices d'approfondissement

Exécutez les deux versions, puis modifiez le code pour observer la différence de sécurité qu'apporte chaque langage.

  • Testez des entrées invalides et des valeurs limites.
  • Compilez avec les options -Wall -Wextra -Wpedantic pour activer davantage d'avertissements.
  • Placez les déclarations communes dans un fichier d'en-tête et l'implémentation dans un fichier séparé.

S'entraîner avec un défi

Utilisez le contenu de cette leçon pour résoudre un vrai problème. Chaque défi s'exécute dans le navigateur, avec des tests instantanés et une revue par l'IA.

Tous les défis