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++后台高级服务器课程

相关推荐
曼巴UE54 小时前
UE5 音效系统
c++·游戏·ue5·虚幻·音效
无影无踪的青蛙5 小时前
[C++] list双向链表使用方法
c++·链表·list
tkevinjd6 小时前
C++中线程库的基本操作
开发语言·c++
CodeWithMe6 小时前
【C/C++】不同防止头文件重复包含的措施
c语言·开发语言·c++
Fre丸子_6 小时前
C++定长内存块的实现
c++
子豪-中国机器人6 小时前
C++ 信息学奥赛总复习题答案解析
开发语言·c++·算法
弥彦_7 小时前
牛客round95D
c++·算法
oioihoii7 小时前
C++11列表初始化:从入门到精通
java·开发语言·c++
tomato097 小时前
2025 年中国大学生程序设计竞赛全国邀请赛(郑州)暨第七届CCPC河南省大学生程序设计竞赛(补题)
c++
whoarethenext7 小时前
使用 C++/OpenCV 创建动态流星雨特效 (实时动画)
开发语言·c++·opencv