switch-case语句

在 C/C++ 中,switch-case 语句用于根据一个表达式的值执行不同的代码块。它的基本结构如下

switch (expression) {
    case constant1:
        // 执行代码块1
        break;
    case constant2:
        // 执行代码块2
        break;
    ...
    default:
        // 执行默认代码块
        break;
}

使用注意事项

  1. 表达式类型限制switch 中的 expression 必须是整数类型或可以转换为整数的类型(如 int, char, enum 等)。不能使用浮点数、字符串、布尔类型等。
  2. case 值必须是常量:每个 case 后的值必须是编译时已知的常量表达式,不能是变量或运行时确定的表达式。
  3. 使用 break 语句:每个 case 语句块通常以 break 结束,防止代码执行“贯穿”到下一个 case 块。如果漏写 break,会导致程序执行完当前 case 后继续执行后面的 case 代码(称为“fall-through”),可能会引发意外的错误。
  4. default 块的使用default 是可选的,但建议在可能的情况下使用,以处理未匹配任何 case 的情况。default 块通常放在 switch 结构的最后。
  5. 避免重复的 case:在 switch 语句中,case 后的值必须唯一,否则会导致编译错误。
  6. 可省略 break 实现贯穿行为:在某些情况下,可以故意省略 break 实现贯穿行为。例如多个 case 需要执行相同的代码时,可以这样写:

switch (expression) {
    case 1:
    case 2:
        // 处理代码块,适用于 case 1 和 case 2
        break;
    default:
        // 处理其他情况
        break;
}

  1. 代码可读性switch-case 适用于较少分支的选择,如果分支过多(如 10 个以上),代码的可读性会降低,考虑使用其他结构(如 if-else 链或查找表)。

示例代码

以下是一个简单的示例,判断输入的整数对应的星期几:

#include <iostream>
using namespace std;

int main() {
    int day;
    cout << "请输入一个整数 (1-7): ";
    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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值