Utiliser des instructions if-else imbriquées en C++

Jinku Hu 12 octobre 2023
  1. Utilisez une seule instruction if-else pour implémenter une instruction conditionnelle en C++
  2. Utilisez des instructions imbriquées if-else pour implémenter un flux de contrôle de programme multiconditionnel en C++
Utiliser des instructions if-else imbriquées en C++

Cet article explique plusieurs méthodes d’utilisation des instructions if-else imbriquées en C++.

Utilisez une seule instruction if-else pour implémenter une instruction conditionnelle en C++

Il existe deux types d’instructions fournies par le langage C++ pour implémenter une exécution conditionnelle. L’une est l’instruction if - qui branche le flux de contrôle en fonction d’une condition, et l’autre est l’instruction switch qui évalue l’expression pour choisir l’un des chemins d’exécution possibles. L’instruction if peut être exprimée sous la forme d’une seule condition ou construite sous la forme d’instructions multi-étapes qui contrôlent les différents chemins d’exécution. Notez que lorsque l’instruction unique suit la condition, elle peut être écrite sans accolades {} pour distinguer la portée du bloc.

#include <iostream>
#include <vector>

using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;

int main() {
  vector<int> array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

  if (array[0] > 1) cout << "array[0] <= 1" << endl;

  if (array[0] > 1) {
    cout << "array[0] <= 1" << endl;
    return EXIT_FAILURE;
  }

  return EXIT_SUCCESS;
}

Utilisez des instructions imbriquées if-else pour implémenter un flux de contrôle de programme multiconditionnel en C++

Alternativement, on peut enchaîner les instructions if-else imbriquées les unes dans les autres pour implémenter un flux de contrôle conditionnel complexe. Notez que l’absence d’accolades pour le if-else donné signifierait que le bloc est exécuté sans condition. Ce dernier scénario est le plus probable lorsque plusieurs instructions if sont imbriquées et que toutes les conditions if n’ont pas le bloc else correspondant au même niveau. Pour éviter de tels problèmes, il faut essayer d’appliquer le style d’accolades ou utiliser des outils spécifiques à l’IDE pour détecter de tels problèmes dans le code.

#include <iostream>
#include <vector>

using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;

int main() {
  vector<int> array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

  if (array[4] > array[3]) {
    cout << "array[4] > array[3]" << endl;
    if (array[4] > array[5])
      cout << "array[4] > array[5]" << endl;
    else
      cout << "array[4] <= array[5]" << endl;
  }

  if (array[4] > array[3]) {
    cout << "array[4] > array[3]" << endl;
    if (array[4] > array[5])
      cout << "array[4] > array[5]" << endl;
    else if (array[4] > array[6])
      cout << "array[4] > array[6]" << endl;
    else if (array[4] < array[5])
      cout << "array[4] < array[5]" << endl;
    else
      cout << "array[4] == array[5]" << endl;
  }

  return EXIT_SUCCESS;
}

Production:

array[4] > array[3]
array[4] <= array[5]
array[4] > array[3]
array[4] < array[5]
Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Article connexe - C++ Statement