Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Langage C++
  3. Structures de contrôle
Extrait - Langage C++ De l'héritage C au C++ moderne (avec programmes d'illustration) (2e édition)
Extraits du livre
Langage C++ De l'héritage C au C++ moderne (avec programmes d'illustration) (2e édition) Revenir à la page d'achat du livre

Structures de contrôle

Hérité du C

L’ensemble des structures de contrôle du C se retrouvent à l’identique sans aucun aménagement particulier en C++, hormis un enrichissement de la boucle for.

Pour rappel, un algorithme est une suite d’instructions qui accomplit une tâche. Un programme accomplit la plupart du temps un grand nombre de tâches elles-mêmes organisées entre elles comme un algorithme. Les structures de contrôle donnent plusieurs moyens fondamentaux d’organiser les tâches entre elles.

Au premier niveau de l’algorithme, nous avons des blocs d’instructions, et au second, nous pouvons organiser une circulation entre des blocs d’instructions grâce à quelques opérateurs spécifiques :

  • Des sauts conditionnels de blocs à blocs avec les if.

  • Des branchements entre blocs avec le switch.

  • Des répétitions de blocs avec les trois boucles while, do-while et for.

  • Des appels de bloc avec des fonctions.

1. Bloc d’instructions

  • Au premier niveau de l’algorithme, des instructions sont regroupées dans un bloc d’instructions. En C, C++ (et tous les langages dérivés), il est délimité avec les opérateurs { } (accolades ouvrante et fermante). Par exemple :

// voici un bloc d'instructions 
{ 
int val; 
    val = rand(); 
    std::cout << "val : " << val << std::endl; 
} 
  • Un bloc d’instructions est UNE instruction composée de plusieurs instructions qui se suivent.

  • Un bloc peut contenir d’autres blocs imbriqués.

  • Dans un fichier source, il ne peut pas y avoir d’instruction en dehors d’un bloc (sauf directives macroprocesseur et déclarations de variables globales ou de fonctions). Pour être valides, toutes...

Apports du C++

1. Condition if ou else-if marquée constexpr

Dans certaines situations, notamment avec l’utilisation de template, la condition d’un if ou d’un if-else peut être préfixée constexpr de la façon suivante :

#include<iostream> 
int main() 
{ 
    int val = rand() % 100;         // evalué à l'exécution 
    const int cval1 = rand();       // evalué à l'exécution 
 
 
    const int cval2 = 50;           // evalué à la compilation 
    constexpr int ceval = 100;      // evalué à la compilation 
 
    if constexpr (val){             // erreur compilation 
           ; 
    } 
    if constexpr (cval1) {          // erreur compilation 
           ; 
    } 
 
    if constexpr (cval2) {          // oui 
           ; 
    } 
    if constexpr (ceval) {          // oui 
           ; 
    }      return 0;  
} 

Cela...