Branchements : if-else, ternaire, switch-case
Choisir entre les chaînes if-else, les expressions ternaires et les instructions switch pour créer des branchements clairs
Branchements : if-else, ternaire, switch-case est une leçon C++ Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C++ Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C++ Academy comprend 4 leçons au total.
L'instruction if
La condition de base. Le corps est exécuté lorsque la condition est vraie. Les accolades sont facultatives pour une seule instruction, mais elles sont toujours recommandées.
int score = 85;
if (score >= 60) {
std::cout << "Pass\n";
}Chaînes if-else
Testez les différentes possibilités avec else if et un else final. La première branche vraie est exécutée.
if (score >= 90) std::cout << "A";
else if (score >= 80) std::cout << "B";
else if (score >= 70) std::cout << "C";
else std::cout << "F";Conditions booléennes
Toute expression convertible en bool convient. Les pointeurs sont évalués comme faux lorsqu'ils sont nuls, et les entiers comme faux lorsqu'ils valent zéro. Soyez explicite pour améliorer la lisibilité.
Initialiser dans le if (C++17)
C++17 vous permet de déclarer une variable dans le if. La portée de la variable se limite au corps du if-else.
if (auto it = map.find(key); it != map.end()) {
std::cout << it->second;
}L'opérateur ternaire
condition ? a : b renvoie l'une de deux valeurs. Il convient parfaitement aux choix simples, mais très mal à une logique imbriquée.
int max = (a > b) ? a : b;
std::string msg = (n == 1) ? "item" : "items";Ternaires imbriqués : à éviter
Les opérateurs ternaires imbriqués sont difficiles à lire. Utilisez plutôt if-else ou réorganisez le code dans une fonction utilitaire.
// Hard to read
auto label = (n < 0) ? "neg" : (n == 0) ? "zero" : "pos";
// Clearer
std::string label;
if (n < 0) label = "neg";
else if (n == 0) label = "zero";
else label = "pos";L'instruction switch
Comparez une valeur à plusieurs constantes. Chaque branche doit contenir break pour éviter de passer au case suivant.
switch (day) {
case 1: std::cout << "Mon"; break;
case 2: std::cout << "Tue"; break;
default: std::cout << "?"; break;
}Passage intentionnel au case suivant
Regroupez plusieurs cases qui partagent le même code. C++17 a ajouté [[fallthrough]] comme marqueur destiné au compilateur.
switch (c) {
case 'a': case 'e': case 'i': case 'o': case 'u':
std::cout << "vowel"; break;
default:
std::cout << "consonant";
}Contraintes de switch
switch fonctionne uniquement avec des types entiers et énumérés. Pour les chaînes de caractères, utilisez if-else ou une table de hachage.
Initialiseur dans switch (C++17)
Comme avec if, vous pouvez déclarer une variable dans l'en-tête de switch.
switch (auto value = compute(); value) {
case 0: ...
default: ...
}Motif : table de correspondance
Pour des branches indexées par des chaînes, un std::unordered_map peut être plus clair qu'une chaîne de if-else.
std::unordered_map<std::string, std::function<void()>> commands = {
{"start", []{ start(); }},
{"stop", []{ stop(); }}
};
if (auto it = commands.find(cmd); it != commands.end())
it->second();Vérification rapide
Que se passe-t-il si un case dans un switch n'a pas de break et que le case suivant n'est pas vide ?
Récapitulatif
Utilisez if-else pour les branchements généraux, l'opérateur ternaire pour les choix courts entre des valeurs, et switch pour comparer une valeur à plusieurs constantes entières. Les instructions d'initialisation de C++17 clarifient la portée des variables.
Questions Fréquemment Posées
La leçon « Branchements : if-else, ternaire, switch-case » est-elle gratuite ?
Oui — le texte complet de « Branchements : if-else, ternaire, switch-case » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C++ Academy, passe à CoddyKit PRO. Le cours C++ Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Branchements : if-else, ternaire, switch-case » ?
Choisir entre les chaînes if-else, les expressions ternaires et les instructions switch pour créer des branchements clairs Tu pratiques C++ Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer C++ Academy ?
Aucune expérience préalable n'est requise. C++ Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Branchements : if-else, ternaire, switch-case » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon C++ Academy ?
Oui. Chaque leçon C++ Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Branchements : if-else, ternaire, switch-case
- Structures de boucles : for, while, do-while
- Boucle for basée sur une plage avec des conteneurs
- Retours anticipés, break, continue et goto