c++ - 我可以在 C++ 中的 if 语句中使用 switch case 吗

标签 c++

#include <iostream>
using namespace std;

int main() {
    int a=2,b=2;
    switch(a){
    case 1:
        cout<<"A"<<endl;
        if(b==5){
            case 2:
                cout<<"A"<<endl;
        }
    case 3:
        cout<<"A"<<endl;
    }
    return 0;
}

无法理解此代码如何输出 2 个“A”,如何将 if 语句放在 case 之外

最佳答案

你在任何地方都没有break,所以当case 2被击中时,它会跳转到case 3并打印第二个A.

如果您在每种情况下使用不同的输出,那会更加明显。

是的,语法允许你将大小写放在 if 中,就像它允许的一样 duff's device编译。

关于c++ - 我可以在 C++ 中的 if 语句中使用 switch case 吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41034618/

相关文章:

c++ - 多维数组类错误

c++ - 如何使用带有变量名称的字符串获取变量地址?

c++ - 主要功能参数的属性

c++ - 在磁盘上实现的 FIFO 队列(或堆栈),而不是 ram(最好在 C++ 中)

c++ - 错误 : passing 'const T' as 'this' argument of 'bool T::operator<(T)' discards qualifiers

c++ - 如何枚举所有进程及其关系窗口标题和进程名称

c++ - 传递绝对文件名以在c++中读取文件

c++ - C++ 中的二维离散拉普拉斯算子 (del2)

c++ - c++复数类中实部和虚部指定了多少位

c++ - QCoreApplication 事件循环和 Windows 服务控制处理函数