English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ Tutoriel de base

C++ Contrôle de flux

C++ Fonction

C++ Tableau & Chaîne

C++ Structure de données

C++ Classe & Objet

C++ Pointeur

C++ Héritage

C++ STL Tutoriel

C++ Manuel de référence

C++ if, if...else et if...else imbriqué

Dans cet article, vous allez apprendre à utiliser différentes formes d'instructions if..else en C ++Créer des instructions de décision dans le programme.

Instructions
Instruction if
Instruction if...else
Instructions if...else imbriquées
Opérateur ternaire

C ++ Instruction if

if (testExpression) 
{
   // Instructions à exécuter si testExpression est vrai
}

L'instruction if évalue testExpression dans les parenthèses.

Si le résultat de calcul de testExpression est vrai, exécutez les instructions à l'intérieur du corps de l'instruction if.

Si le résultat de calcul de testExpression est faux, sautez les instructions à l'intérieur du corps de l'instruction if.

Comment fonctionne l'instruction if?

Diagramme de flux de l'instruction if

L'image ci-dessus décrit le fonctionnement de l'instruction if.

示例1:C ++ Instruction if

// Le programme affiche le nombre positif saisi par l'utilisateur
// Si l'utilisateur saisit un nombre négatif, passez.
 
#include <iostream>
using namespace std;
int main() 
{
    int number;
    cout << "输入一个整数: ";
    cin >> number;
    // Vérifiez si le nombre est positif
    if (number > 0) 
    {
        cout << "Vous avez saisi un entier positif: " << number << endl;
    }
    cout << "Cette instruction est toujours exécutée.";
    return 0;
}

Sortie1

输入一个整数: 5
Vous avez saisi un entier positif: 5
Cette instruction est toujours exécutée.

Sortie2

输入一个整数: -5
Cette instruction est toujours exécutée.

C ++ Instruction if...else

Si l'expression de test (test Expression) est vraie, l'exécution du code dans le corps de l'instruction if...else a lieu à l'intérieur de l'instruction if, et le code dans le corps de l'instruction else est sauté.

如果测试表达式(test Expression)为false,则在else语句主体内执行代码,并跳过if主体内的代码。

if.. else语句如何工作?

if ... else的流程图

示例2:C ++ if ... else语句

//程序检查整数是正数还是负数
//该程序将0视为正数
#include <iostream>
using namespace std;
int main() 
{
    int number;
    cout << "输入一个整数: ";
    cin >> number;
    if (number >= 0)
    {
        cout << "您输入了一个正整数:" << number << endl;
    }
    
    else
    {
        cout << "您输入了一个负整数:" << number << endl;
    }
    cout << "此行始终被打印。";
    return 0;
}

Résultat de la sortie

输入一个整数: -4
您输入了一个负整数: -4.
此行始终被打印。

C ++ 嵌套if...else语句

if...else语句执行两个不同的代码,具体取决于测试表达式(Test expression)为true还是false。有时,必须从两种以上的可能性中进行选择。

使用嵌套if...else语句,您可以检查多个测试表达式(Test expression)并针对两个以上的条件执行不同的代码。

这意味着您可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。

嵌套if ... else的语法

if (testExpression1) 
{
   // 如果testExpression1为真,则执行语句
}
else if(testExpression2) 
{
   // 如果testExpression1为假,testExpression2为真,则执行的语句
}
else{
    if (testExpression 3) 
    {
       // 如果testExpression1和testExpression2为假,testExpression3为真,则执行的语句
    }
    else 
    {
       // 如果所有测试表达式均为假,将执行的语句
    }
}

示例3:C ++ if...else嵌套

// 程序检查一个整数是正、负还是零
#include <iostream>
using namespace std;
int main() 
{
    int number;
    cout << "输入一个整数: ";
    cin >> number;
    if (number > 0)
    {
        cout << "您输入了一个正整数:" << number << endl;
    }
    else
    {
        if (number < 0)
            {
                cout << "您输入了一个负整数:" << number << endl;
            }
             cout << "您输入了0。" << endl;
        }
    }
    cout << "This line is always printed.";
    return 0;
}

Résultat de la sortie

Entrez un entier: 0
Vous avez entré 0.
Cette ligne est toujours affichée.

Condition/Opérateur ternaire (?:)

L'opérateur ternaire3Un opérateur d'une seule expression peut être utilisé à la place de l'instruction if...else.

Les instructions if suivantes :

if (a < b) {
   a = b;
}
else {
   a = -b;
}

Vous pouvez remplacer le code ci-dessus par une expression ternaire :

a = (a < b) ? b : -b;

L'opérateur ternaire est plus court et plus lisible que les instructions conditionnelles if...else.