You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何简化C++ switch()语句 实现多case分支合并为一行

结论

标准C++原生语法不支持你想要的「多个case值写在同一行匹配」的写法,强行用逗号合并多个case值会触发逻辑错误。

错误写法说明

如果你硬把多个case值写在同一行,比如写成case 1,2,3,4,5,9,10,11,12:,代码可以正常编译,但逗号运算符会忽略前面所有值,仅匹配最后一个值12,完全不符合你的需求。

简化方案

不用列全所有非夏季月份的case,调整逻辑即可大幅简化代码:

方案1:改用if-else逻辑(可读性最高)

int month;
cout << "Enter a number to determine what month it is: ";
cin >> month;

if (month < 1 || month > 12) {
    cout << "Your input is out of range";
} else if (month == 6) {
    cout << "June";
} else if (month == 7) {
    cout << "July";
} else if (month == 8) {
    cout << "August";
} else {
    cout << "Not summer";
}

方案2:保留switch,调整default逻辑

int month;
cout << "Enter a number to determine what month it is: ";
cin >> month;

switch (month) {
    case 6:
        cout << "June";
        break;
    case 7:
        cout << "July";
        break;
    case 8:
        cout << "August";
        break;
    default:
        if (month >= 1 && month <= 12) {
            cout << "Not summer";
        } else {
            cout << "Your input is out of range";
        }
}

内容的提问来源于stack exchange,提问作者Mysterai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 11:18:04