使用或切换语句

Sal*_*ara 25 c++ switch-statement conditional-statements or-operator

我正在创建一个控制台应用程序并使用switch语句来创建一个简单的菜单系统.用户输入采用单个字符的形式,在屏幕上显示为大写字母.但是,我确实希望程序接受小写和大写字符.

我理解switch语句用于比较常量,但有可能做类似下面的事情吗?

switch(menuChoice) {
    case ('q' || 'Q'):
        //Some code
        break;
    case ('s' || 'S'):
        //More code
        break;
    default:
        break;
}
Run Code Online (Sandbox Code Playgroud)

如果无法做到这一点,是否有解决方法?我真的不想重复代码.

Chr*_*ski 48

这条路:

 switch(menuChoice) {
    case 'q':
    case 'Q':
        //Some code
        break;
    case 's':
    case 'S':
        //More code
        break;
    default:
 }
Run Code Online (Sandbox Code Playgroud)

有关该主题的更多信息:http: //en.wikipedia.org/wiki/Switch_statement#C.2C_C.2B.2B.2C_Java.2C_PHP.2C_ActionScript.2C_JavaScript

  • 真棒.谢谢. (2认同)

Joh*_*ker 20

通常接受的语法是:

switch(menuChoice) {
    case 'q':
    case 'Q':
        //Some code
        break;
    case 's':
    case 'S':
        //More code
        break;
    default:
        break;
}
Run Code Online (Sandbox Code Playgroud)

即:由于缺少a break,程序执行级联到下一个块.这通常被称为"堕落".

也就是说,您当然可以通过toupper/tolower简化这个实例中'menuChoice'变量的大小写.

  • 我认为这应该是最好的答案而不是上面的那个 - 不仅它回答如何解决它,而且它还告诉你为什么在你必须去一个可能存在或可能不存在的链接之前. (3认同)