Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Instructions If Imbriquées | Introduction aux Instructions Conditionnelles
Instructions Conditionnelles en C++
course content

Contenu du cours

Instructions Conditionnelles en C++

Instructions Conditionnelles en C++

1. Introduction aux Instructions Conditionnelles
2. Pratique du Flux de Contrôle Conditionnel
3. Sujets Avancés

book
Instructions If Imbriquées

Une instruction if imbriquée est simplement une instruction if à l'intérieur d'une autre instruction if. Cette structure vous permet d'évaluer plusieurs conditions, l'une après l'autre, et d'exécuter des blocs de code spécifiques.

h

nested_if

copy
1234567891011121314
if (condition1) { // Code block 1 if (condition2) { // Code block 2 if (condition3) { // Code block 3 } } }

L'instruction if extérieure agit comme un gardien, et en fonction de son évaluation, elle peut ouvrir la porte à une autre instruction if à l'intérieur. Considérons un scénario où nous voulons déterminer le salaire d'un travailleur en fonction de sa performance.

cpp

main

copy
12345678910111213141516171819202122232425
#include <iostream> int main() { int current_salary = 1000; int completed_tasks = 17; int hours_worked = 37; // If the number of completed tasks is greater than 15, if (completed_tasks > 15) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; // And if the number of hours worked is more than 40 if (hours_worked > 40) { // add an additional 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; } } std::cout << current_salary << std::endl; }

Ce code calcule le nouveau salaire d'un employé en fonction du nombre de tâches accomplies et des heures travaillées, avec une augmentation de 20% si les tâches sont supérieures à 15 et une augmentation supplémentaire de 20% si les heures travaillées sont supérieures à 40. Comme vous pouvez le voir, les calculs actuels sont de 1200. Et cela ne peut être réalisé qu'en utilisant des instructions if imbriquées, voici quelques tentatives pour obtenir la même logique sans elles.

cpp

main

copy
12345678910111213141516171819202122232425
#include <iostream> int main() { int current_salary = 1000; int completed_tasks = 9; int hours_worked = 41; // If the number of completed tasks is greater than 15, if (completed_tasks > 15) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; } // If the number of hours worked is more than 40 if (hours_worked > 40) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; } std::cout << current_salary << std::endl; }

Au début, il peut sembler que cela fonctionne de la même manière, mais dans ce cas, le travailleur recevra une augmentation supplémentaire de 20%, indépendamment du fait qu'il ait accompli plus de 15 tâches. Exécutez le code et regardez la sortie, elle montre une valeur de 1200, même si cette fois le travailleur n'a pas accompli plus de 15 tâches.

cpp

main

copy
1234567891011121314151617181920212223
#include <iostream> int main() { int current_salary = 1000; int completed_tasks = 19; int hours_worked = 39; // If the number of completed tasks is greater than 15 // AND the number of of hours worked is more than 40 if (completed_tasks > 15 && hours_worked > 40) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; std::cout << current_salary << std::endl; } std::cout << current_salary << std::endl; }

Dans ce cas, il peut sembler que cela devrait fonctionner comme prévu, mais malheureusement, c'est également incorrect, le résultat est 1000. C'est parce que si le travailleur effectue plus de 15 tâches mais ne travaille pas plus de 40 heures, il ne recevra rien. Donc, nous devons utiliser des instructions if imbriquées pour obtenir la bonne implémentation.

Les instructions if imbriquées sont vraiment utiles pour créer des processus de prise de décision et gérer des scénarios complexes dans votre code. En concevant soigneusement la structure de votre code et en maintenant sa lisibilité, vous pouvez exploiter la puissance des instructions if imbriquées pour écrire des programmes efficaces et maintenables.

Remarque

Les instructions if imbriquées sont nécessaires dans certains cas mais pas toujours. Dans la troisième section, nous discuterons quand, pourquoi et comment les éviter.

Tâche

Swipe to start coding

Nous avons un excès de téléphones roses dans notre inventaire que nous devons vendre.

  1. Faites une réduction de 20% sur les téléphones roses.
  2. Si le prix d'un téléphone dépasse 1 000 $, la réduction sera réduite à 10%.
  3. Pour tous les autres téléphones, augmentez le prix de 10%.

Solution

cpp

solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 5
toggle bottom row

book
Instructions If Imbriquées

Une instruction if imbriquée est simplement une instruction if à l'intérieur d'une autre instruction if. Cette structure vous permet d'évaluer plusieurs conditions, l'une après l'autre, et d'exécuter des blocs de code spécifiques.

h

nested_if

copy
1234567891011121314
if (condition1) { // Code block 1 if (condition2) { // Code block 2 if (condition3) { // Code block 3 } } }

L'instruction if extérieure agit comme un gardien, et en fonction de son évaluation, elle peut ouvrir la porte à une autre instruction if à l'intérieur. Considérons un scénario où nous voulons déterminer le salaire d'un travailleur en fonction de sa performance.

cpp

main

copy
12345678910111213141516171819202122232425
#include <iostream> int main() { int current_salary = 1000; int completed_tasks = 17; int hours_worked = 37; // If the number of completed tasks is greater than 15, if (completed_tasks > 15) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; // And if the number of hours worked is more than 40 if (hours_worked > 40) { // add an additional 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; } } std::cout << current_salary << std::endl; }

Ce code calcule le nouveau salaire d'un employé en fonction du nombre de tâches accomplies et des heures travaillées, avec une augmentation de 20% si les tâches sont supérieures à 15 et une augmentation supplémentaire de 20% si les heures travaillées sont supérieures à 40. Comme vous pouvez le voir, les calculs actuels sont de 1200. Et cela ne peut être réalisé qu'en utilisant des instructions if imbriquées, voici quelques tentatives pour obtenir la même logique sans elles.

cpp

main

copy
12345678910111213141516171819202122232425
#include <iostream> int main() { int current_salary = 1000; int completed_tasks = 9; int hours_worked = 41; // If the number of completed tasks is greater than 15, if (completed_tasks > 15) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; } // If the number of hours worked is more than 40 if (hours_worked > 40) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; } std::cout << current_salary << std::endl; }

Au début, il peut sembler que cela fonctionne de la même manière, mais dans ce cas, le travailleur recevra une augmentation supplémentaire de 20%, indépendamment du fait qu'il ait accompli plus de 15 tâches. Exécutez le code et regardez la sortie, elle montre une valeur de 1200, même si cette fois le travailleur n'a pas accompli plus de 15 tâches.

cpp

main

copy
1234567891011121314151617181920212223
#include <iostream> int main() { int current_salary = 1000; int completed_tasks = 19; int hours_worked = 39; // If the number of completed tasks is greater than 15 // AND the number of of hours worked is more than 40 if (completed_tasks > 15 && hours_worked > 40) { // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; // add an 20% increase to the current salary current_salary = current_salary + current_salary * 0.2; std::cout << current_salary << std::endl; } std::cout << current_salary << std::endl; }

Dans ce cas, il peut sembler que cela devrait fonctionner comme prévu, mais malheureusement, c'est également incorrect, le résultat est 1000. C'est parce que si le travailleur effectue plus de 15 tâches mais ne travaille pas plus de 40 heures, il ne recevra rien. Donc, nous devons utiliser des instructions if imbriquées pour obtenir la bonne implémentation.

Les instructions if imbriquées sont vraiment utiles pour créer des processus de prise de décision et gérer des scénarios complexes dans votre code. En concevant soigneusement la structure de votre code et en maintenant sa lisibilité, vous pouvez exploiter la puissance des instructions if imbriquées pour écrire des programmes efficaces et maintenables.

Remarque

Les instructions if imbriquées sont nécessaires dans certains cas mais pas toujours. Dans la troisième section, nous discuterons quand, pourquoi et comment les éviter.

Tâche

Swipe to start coding

Nous avons un excès de téléphones roses dans notre inventaire que nous devons vendre.

  1. Faites une réduction de 20% sur les téléphones roses.
  2. Si le prix d'un téléphone dépasse 1 000 $, la réduction sera réduite à 10%.
  3. Pour tous les autres téléphones, augmentez le prix de 10%.

Solution

cpp

solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 5
Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
We're sorry to hear that something went wrong. What happened?
some-alt