C++ switch语句怎么用?新手入门基础用法详解

来源:我的博客作者:美园和花头衔:网络博主
导读:本期聚焦于小伙伴创作的《C++ switch语句怎么用?新手入门基础用法详解》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《C++ switch语句怎么用?新手入门基础用法详解》有用,将其分享出去将是对创作者最好的鼓励。

C++的switch语句是一种常用的多分支选择控制结构,适合处理单个变量与多个固定值匹配的场景,相比多层嵌套的if else语句,它的逻辑结构更直观,执行效率也更高。下面我们先通过一个简单的示例了解switch的基础使用方式。

C++ switch语句怎么用?新手入门基础用法详解

switch语句的基本语法

switch语句的核心是将一个表达式的值与多个case标签的值进行匹配,匹配成功后执行对应的代码块,基本语法结构如下:

switch (表达式) {
    case 常量1:
        // 表达式值等于常量1时执行的代码
        break;
    case 常量2:
        // 表达式值等于常量2时执行的代码
        break;
    // 可以有任意多个case分支
    default:
        // 所有case都不匹配时执行的代码
        break;
}

这里的表达式的结果必须是整型、字符型或者枚举类型,case后面的常量必须是编译期可确定的常量,不能是变量或者表达式。

基础使用示例

下面是一个根据输入的数字输出对应星期几的简单示例:

#include <iostream>
using namespace std;

int main() {
    int day;
    cout << "请输入1-7之间的数字:" << endl;
    cin >> day;

    switch (day) {
        case 1:
            cout << "今天是星期一" << endl;
            break;
        case 2:
            cout << "今天是星期二" << endl;
            break;
        case 3:
            cout << "今天是星期三" << endl;
            break;
        case 4:
            cout << "今天是星期四" << endl;
            break;
        case 5:
            cout << "今天是星期五" << endl;
            break;
        case 6:
            cout << "今天是星期六" << endl;
            break;
        case 7:
            cout << "今天是星期日" << endl;
            break;
        default:
            cout << "输入的数字不在1-7范围内" << endl;
            break;
    }
    return 0;
}

核心注意事项

break关键字的作用

break的作用是跳出当前的switch语句,如果不写break,程序会继续执行下一个case中的代码,这种现象叫做case穿透。比如上面的示例如果去掉case 1后面的break,当输入1时,会先输出星期一,然后继续执行case 2的代码输出星期二,直到遇到break或者switch结束。

合理利用case穿透可以简化代码,比如多个case需要执行相同逻辑时:

#include <iostream>
using namespace std;

int main() {
    int score;
    cout << "请输入成绩等级(A/B/C/D):" << endl;
    cin >> score;

    switch (score) {
        case 'A':
        case 'B':
            cout << "成绩合格,表现优秀" << endl;
            break;
        case 'C':
            cout << "成绩合格,需要继续努力" << endl;
            break;
        case 'D':
            cout << "成绩不合格,需要补考" << endl;
            break;
        default:
            cout << "输入的成绩等级不合法" << endl;
            break;
    }
    return 0;
}

default分支的作用

default分支是可选的,当所有case都不匹配表达式的值时,会执行default中的代码。如果没有写default,且所有case都不匹配,那么switch语句不会执行任何操作。

表达式和case常量的要求

  • switch后面的表达式结果必须是整型(int、short、long等)、字符型(char)或者枚举类型,不能是浮点型或者字符串。
  • case后面的常量必须是编译期确定的常量,比如字面量、const修饰的常量,不能是变量或者运行时才能确定的表达式。
  • 所有case后面的常量值不能重复,否则会编译报错。

常见使用误区

很多新手容易犯的错误包括:忘记写break导致逻辑错误、case后面写变量而不是常量、在switch内部定义变量却没有加作用域括号。如果在case分支中定义变量,需要用大括号包裹该分支的代码,避免作用域混乱:

#include <iostream>
using namespace std;

int main() {
    int num = 2;
    switch (num) {
        case 1: {
            int temp = 10;
            cout << temp << endl;
            break;
        }
        case 2: {
            int temp = 20;
            cout << temp << endl;
            break;
        }
        default:
            break;
    }
    return 0;
}

以上就是C++ switch语句的基础用法和常见注意事项,实际开发中可以根据场景灵活选择使用switch还是if else,当分支判断的条件是基于单个变量的固定值匹配时,switch是更优的选择。

C++_switchswitch语法switch_casebreak关键字修改时间:2026-06-18 00:27:17

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。