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

相关推荐
SmartRadio4 分钟前
ESP32添加修改蓝牙名称和获取蓝牙连接状态的AT命令-完整UART BLE服务功能后的完整`main.c`代码
c语言·开发语言·c++·esp32·ble
charlie1145141911 小时前
嵌入式的现代C++教程——constexpr与设计技巧
开发语言·c++·笔记·单片机·学习·算法·嵌入式
CSDN_RTKLIB4 小时前
【字符编码】有无BOM的UTF-8
c++
Chary20165 小时前
opengl 学习资料路径
c++·opengl
im_AMBER5 小时前
Leetcode 102 反转链表
数据结构·c++·学习·算法·leetcode·链表
今儿敲了吗6 小时前
01|多项式输出
c++·笔记·算法
程序员Jared6 小时前
C++11—mutex
c++
朔北之忘 Clancy6 小时前
2025 年 9 月青少年软编等考 C 语言一级真题解析
c语言·开发语言·c++·学习·数学·青少年编程·题解
量子炒饭大师6 小时前
【C++入门】Cyber底码作用域的隔离协议——【C++命名空间】(using namespace std的原理)
开发语言·c++·dubbo
REDcker7 小时前
RTCP 刀尖点跟随技术详解
c++·机器人·操作系统·嵌入式·c·数控·机床