编辑这个页面须要登录或更高权限!

C++ if, if...else和嵌套if...else

在本文中,您将学习使用不同形式的if..else语句在C ++程序中创建决策语句。

语句
if 语句
if...else 语句
嵌套if ... else语句
三元运算符

C ++ if语句

if (testExpression) 
{
   // 如果testExpression为真将执行的语句
}

if语句在括号内评估testExpression。

如果testExpression的计算结果为true,则执行if主体内的语句。

如果testExpression的计算结果为false,则跳过if主体内部的语句。

if语句如何工作?

C ++编程中if语句的工作

if语句流程图

C ++编程中if语句的流程图

上图描述了if语句的工作。

示例1:C ++ if语句

// 程序打印用户输入的正数
// 如果用户输入负数,则跳过
 
#include <iostream>
using namespace std;

int main() 
{
    int number;
    cout << "输入一个整数: ";
    cin >> number;

    // 检查数字是否为正数
    if ( number > 0) 
    {
        cout << "你输入了一个正整数: " << number << endl;
    }

    cout << "这个语句总是被执行。";
    return 0;

}

输出1

输入一个整数: 5
你输入了一个正整数: 5
这个语句总是被执行。

输出2

输入一个整数: -5
这个语句总是被执行。

C ++ if...else 语句

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

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

if.. else语句如何工作?

C ++编程中if else语句的工作

if ... else的流程图

C ++编程中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;
}

输出结果

输入一个整数: -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;
            }else{
             cout << "您输入了0。" << endl;
        }
    }

    cout << "This line is always printed.";
    return 0;
}

输出结果

输入一个整数: 0
您输入了0。
这一行总是打印出来的。

条件/三元运算符(?:)

三元运算符对3个操作数进行运算,可以代替if...else语句来使用。

以下if代码:

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

您可以使用三元运算将以上代码替换为:

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

三元运算符比if...else条件语句更短更具可读性。