C++中组合使用多个 if…else 结构

C++中组合使用多个 if...else 结构

需要根据多个条件执行不同任务时,嵌套 if 语句很有用,也可组合使用多个 if...else 结构。

C++ 中的 if...else if...else 语句的语法:

cpp 复制代码
if(boolean_expression 1)
{
    // 当布尔表达式 1 为真时执行
}
else if( boolean_expression 2)
{
    // 当布尔表达式 2 为真时执行
}
else if( boolean_expression 3)
{
    // 当布尔表达式 3 为真时执行
}
else
{
    // 当上面条件都不为真时执行
}

当使用 if...else if...else 语句时,以下几点需要注意:

一个 if 后可跟零个或一个 else,else 必须在所有 else if 之后。

一个 if 后可跟零个或多个 else if,else if 必须在 else 之前。

一旦某个 else if 匹配成功,其他的 else if 或 else 将不会被测试。

以下示例程序让用户输入星期几, 并使用一组 if...else 结构告诉用户它是以哪颗星星命名的。

cpp 复制代码
#include <iostream>
using namespace std;

int main()
{
    enum DaysOfWeek
    {
        Sunday = 0,
        Monday,
        Tuesday,
        Wednesday,
        Thursday,
        Friday,
        Saturday
    };

    cout << "Find what days of the week are named after!" << endl;
    cout << "Enter a number for a day (Sunday = 0): ";

    int dayInput = Sunday;   // Initialize to Sunday
    cin >> dayInput;

    if (dayInput == Sunday)
        cout << "Sunday was named after the Sun" << endl;
    else if (dayInput == Monday)
        cout << "Monday was named after the Moon" << endl;
    else if (dayInput == Tuesday)
        cout << "Tuesday was named after Mars" << endl;
    else if (dayInput == Wednesday)
        cout << "Wednesday was named after Mercury" << endl;
    else if (dayInput == Thursday)
        cout << "Thursday was named after Jupiter" << endl;
    else if (dayInput == Friday)
        cout << "Friday was named after Venus" << endl;
    else if (dayInput == Saturday)
        cout << "Saturday was named after Saturn" << endl;
    else
        cout << "Wrong input, execute again" << endl;

    return 0;
}

输出:

复制代码
Find what days of the week are named after!
Enter a number for a day (Sunday = 0): 5
Friday was named after Venus

再次运行的输出:

复制代码
Find what days of the week are named after!
Enter a number for a day (Sunday = 0): 9
Wrong input, execute again

分析:

第 22~37 行的 if-else-if 结构检查用户输入并生成相应的输出。第二次运行的输出表明,如果用户输入的不是 0~6,即不对应于一个星期的任何一天,程序将指出这一点。这种结构的优点是,非常适合用于检查互斥的条件,即星期一不可能是星期二,而无效输入不与一个星期的任何一天对应。另一个有趣的地方是,在 if 语句中使用了第 5 行声明的枚举 DaysOfWeek。原本可以将用户输入与整数(如

0 表示星期天等)进行比较,但通过使用枚举量 Sunday,代码的可读性更强。

该文章会更新,欢迎大家批评指正。

推荐一个零声学院的C++服务器开发课程,个人觉得老师讲得不错,

分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,

fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,

TCP/IP,协程,DPDK等技术内容

点击立即学习:C/C++后台高级服务器课程

相关推荐
Tri_Function3 小时前
动态规划DP1(c++)
c++
清水迎朝阳6 小时前
客户端软件 — 用户统计方案
服务器·c++·客户端·用户统计
再卷也是菜7 小时前
C++17(下)
c++
alexwang2117 小时前
HDU 4348 详细题解
c++·算法·题解·hdu·主席树·可持久化数据结构·可持久化线段树
程序员zgh7 小时前
C++ 拷贝赋值运算符 详解
c语言·开发语言·c++
皓月斯语9 小时前
B2132 素数对
c++·算法·题解
星轨初途10 小时前
LeetCode 热题 100——day2 字母异位词分组
c++·算法·leetcode
笨鸟先飞的橘猫10 小时前
c++面向对象编程
开发语言·c++
啦啦啦啦啦zzzz11 小时前
设计模式:桥接模式和组合模式
c++·设计模式·组合模式·桥接模式
-森屿安年-11 小时前
647. 回文子串
c++·算法·动态规划