C++中使用 switch-case 进行条件处理

这篇具有很好参考价值的文章主要介绍了C++中使用 switch-case 进行条件处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C++中使用 switch-case 进行条件处理

switch-case 让您能够将特定表达式与一系列常量进行比较,并根据表达式的值时执行不同的操作。在这种结构中,经常会使用 C++新增的关键字 switch、 case、 default 和 break。

switch-case 结构的语法如下:

switch(expression)
{
    case LabelA:
        DoSomething;
        break;
    case LabelB:
        DoSomethingElse;
        break;
        // And so on...
    default:
        DoStuffWhenExpressionIsNotHandledAbove;
        break;
}

上述代码计算 expression 的值,并将其与每个 case 标签进行比较。每个 case 标签都必须是常量,如果 expression 的值与 case 标签相等,就执行标签后面的代码。如果 expression 与 LabelA 不相等,将把 expression 与 LabelB 进行比较。如果它与 LabelB 相同,就执行 DoSomethingElse。将不断重复这个过程,直到遇到 break。这是您首次使用关键字 break,它导致程序退出当前代码块。 break 并非必不可少,但如果省略它,将不断与后面的标签进行比较,这并非您希望的。 default 也是可选的,它用于执行 expression 不与 switch-case 中的任何标签匹配时应执行的操作。

提示:

switch-case 结构非常适合与枚举量结合使用。

以下示例程序使用了 switch-case 结构,指出一个星期的各天是以哪颗星星命名的,也使用了枚举常量:

#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;

    switch(dayInput)
    {
        case Sunday:
            cout << "Sunday was named after the Sun" << endl;
            break;

        case Monday:
            cout << "Monday was named after the Moon" << endl;
            break;

        case Tuesday:
            cout << "Tuesday was named after Mars" << endl;
            break;

        case Wednesday:
            cout << "Wednesday was named after Mercury" << endl;
            break;

        case Thursday:
            cout << "Thursday was named after Jupiter" << endl;
            break;

        case Friday:
            cout << "Friday was named after Venus" << endl;
            break;

        case Saturday:
            cout << "Saturday was named after Saturn" << endl;
            break;

        default:
            cout << "Wrong input, execute again" << endl;
            break;
    }

    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~55 行的 switch-case 结构根据用户输入的整数(存储在变量 dayInput 中)生成不同的输出。用户输入数字 5 时,应用程序将 switch 表达式( dayInput,其值为 5)与标签进行比较,并跳过前 4 个标签后面的代码,因为这些标签为 Sunday( 0) ~Thursday( 4),它们都与 5 不相等。到达标签 Friday 后,由于 switch 表达式的值( 5)与枚举量 Friday 相等,因此执行该标签后面的代码,并在到达第 46行的 break 后退出 swtich 结构。第二次运行时提供的值无效,因此到达 default 后执行它后面的代码,显示一条让用户再执行一次的消息。
这个程序使用的是 switch-case, switch-case 版本的结构化程度更高,可能非常适合不仅仅将一行文本显示在屏幕上的情形(在这种情形下,可将代码放在大括号内,组成语句块)。

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

推荐一个零声学院的C++服务器开发课程,个人觉得老师讲得不错,
分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容
点击立即学习:C/C++后台高级服务器课程文章来源地址https://www.toymoban.com/news/detail-686678.html

到了这里,关于C++中使用 switch-case 进行条件处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CASE WHEN函数语句多条件下使用详解

    目录 CASE 的两种格式: 简单CASE函数 和 CASE搜索函数 同时配合 SUM 以及 COUNT 方法的使用 ① SUM函数 ② COUNT函数 CASE WHEN函数语句,实现简单CASE函数和CASE搜索函数两种格式。 同时配合 SUM以及COUNT方法的使用 CASE 的两种格式:  简单CASE函数 和 CASE搜索函数 两种格式示例: 状态

    2024年02月11日
    浏览(72)
  • Python Switch 语句——Switch Case 示例

    在 3.10 版本之前,Python 从来没有实现 switch 语句在其他编程语言中所做的功能。 所以,如果你想执行多个条件语句,你将不得不使用elif这样的: 从 3.10 版本开始,Python 实现了一个称为“结构模式匹配”的 switch case 特性。您可以使用match和case来实现此功能。 有

    2024年02月12日
    浏览(52)
  • SQL之CASE WHEN函数语句多条件下使用详解

    针对CASE WHEN函数语句,实现简单CASE函数和CASE搜索函数两种格式。 同时配合 SUM以及COUNT方法的使用 1、CASE 的两种格式:  简单CASE函数和CASE搜索函数 两种格式示例: 状态: state 订单号: orderId 这两种格式式,可以实现相同的功能。但是简单CASE函数和CASE搜索函数相比,功能

    2024年02月11日
    浏览(97)
  • Java switch case 语句

    Java 的 switch case 语句是一种常用的控制流语句,用于基于不同的输入值执行不同的操作。本文将详细介绍 Java switch case 语句的作用、用法以及在实际工作中的应用。 一、switch case 语句的作用 switch case 语句是一种多分支条件语句,它基于不同的输入值,执行不同的操作。swit

    2024年02月11日
    浏览(38)
  • Java switch case语句详解

    if…else 语句可以用来描述一个“二岔路口”,我们只能选择其中一条路来继续走,然而生活中经常会碰到“多岔路口”的情况。switch 语句提供了 if 语句的一个变通形式,可以从多个语句块中选择其中的一个执行。 switch 语句是 Java 的多路分支语句。它提供了一种基于一个表

    2024年02月16日
    浏览(35)
  • 超级进化吧switch case in java

    因为长情是古董,所以假货特别多 觉得太长可以直接看总结就可以了 Switch case语句在Java中是一种流程控制结构,用于将一个值与一系列可能的情况进行比较,并根据匹配的情况执行相应的代码块。在不同的Java版本中,switch case标签的用法略有不同。 Java 6及以下 | 整数当道

    2023年04月08日
    浏览(44)
  • C语言 switch case 语句优化方案其一

                   这是一个用于计时的函数,细心的朋友应该可以发现,这段代码还隐藏一段 if 语句的优化方案,那就是 提前return,干掉else。                结构体内容如下: 当case语句较少的时候还能接收,假如很多的时候就会难以维护,这里提供一种思维。   

    2024年01月21日
    浏览(47)
  • 揭秘Java switch语句中的case穿透现象

    导语:在 Java 开发中,我们经常使用 switch 语句来进行条件判断和分支选择。然而,有一个令人困惑的现象就是,当某个 case 语句没有加上 break 时,程序会继续执行下一个 case 语句,这被称为 case穿透现象 。本文将揭秘 case穿透现象 的原因,并解释为何会出现这种行为

    2024年02月06日
    浏览(49)
  • 【switch...case】击穿 | return和break的区别

    首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇break语句就退出switch语句;若圆括号中表达式的值与所有case后面的常量表达式都不等,则执行defaul

    2024年02月08日
    浏览(35)
  • switch语句每个case后一定要有break吗?

    java和c/c++差不多,就用java代码解释吧 先说结论:不一定要break!!! 如果case后面没有break,那么则会无视下个case的条件执行下一个case,直到再次出现一个break跳出循环 上对比代码: 代码的意思就是键盘输入一个a,如果a=1,就执行case中的内容。 我们输入1,结果是2(如图:

    2024年02月11日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包