c++ - switch语句,不同case中的两个相似case

标签 c++ switch-statement cin

如果我想创建一个带有选项的菜单,例如

如果我有两种情况,A 和 B,在这两种情况下,他们可以选择写 C。 A C 和 BC 作为输入应该是不同的东西,而不是冲突。那将如何运作?

char ch;

cout << "Write in command: ";
cin >> ch; 

switch(ch) {
    case 'A': {
        cin >> ch;
        case 'C': cout << "C"; break;
        break;
    }
    case 'B': {
        cin >> ch;
        case 'C': cout << "C"; break;
        break;
    }

}

最佳答案

您必须为每个案例使用另一个 switch case 或 if 语句。

如果您打算使用少量项目,我个人建议使用 if 语句,因为另一个 switch case 会使它在我看来很难看。

嵌套开关盒。

switch(ch) {
    case 'A': {
        cin >> ch;
        switch (ch) {
            case 'C': cout << "C"; break;
        }
        break;
    }
    case 'B': {
        cin >> ch;
        switch (ch) {
            case 'C': cout << "C"; break;
        }
        break;
    }
}

嵌套 if 语句。

switch(ch) {
    case 'A': {
        cin >> ch;
        if (ch == 'C') {
            std::cout << 'C';   
        }
        break;
    }
    case 'B': {
        cin >> ch;
        if (ch == 'C') {
            std::cout << 'C';   
        }
        break;
    }
}

关于c++ - switch语句,不同case中的两个相似case,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49372555/

相关文章:

c++ - 该指针不同于调用该方法的指针

c# - 可以使用 && 或 ||在 switch 语句中?视觉 C#

swift - 嵌套枚举以便在 Swift 中通过 switch 语句访问的更简洁的方法?

c++ - 限制用户输入的字符数

c++ - 如何使用 CIN 在一行中捕获两种不同的数据类型?

c++ - 使用带 boost::shared_ptr 的基类在 map 中查找

c++ - 静态常量缓存结果

C++如何在函数的一行中读取更多整数?

c++ - 纹理不会出现 - GLUT OpenGL

java - 为什么 switch (Java) 会发生这种情况?