在C ++中用Switch-Case做一个OR

时间:2012-07-17 17:37:45

标签: c++ visual-studio-2010

你会如何用C ++做到这一点?例如,如果用户按下ESC或“q”或“Q”,我试图触发程序退出。

我已经尝试过寻找它,但我在C ++中找不到它的语法。我知道如何用if-else来做,但是有可能用switch - case吗?当然我可以创建一个函数并从两个单独的case中调用它,但是有没有办法通过组合case语句来完成它?

例如,这就是我正在寻找的(当然不起作用):

void keyboard( unsigned char key, int x, int y )
{
    switch( key )
    {
        case ( 27 || 'q' || 'Q' ):
            exit( 0 );
            break;

        case 'a': ...

                case 'b': ...
    }
}

4 个答案:

答案 0 :(得分:35)

案件不间断地落下:

case  27: //could be 27
case 'q': //could be 27 or 'q'
case 'Q': //could be 27, 'q', or 'Q'
    exit(0);
    break;

答案 1 :(得分:1)

我相信它只是

switch(key){
 case 'a': case 'b':  
    /*code*/ 
    break;

    ...

案例A和B都将执行相同的代码。

答案 2 :(得分:0)

void keyboard( unsigned char key, int x, int y )
{
    switch( key )
    {
        case 027:
        case 'q':
        case 'Q':
            exit( 0 );
            break;

        case 'a': ...

        case 'b': ...
    }
}

答案 3 :(得分:0)

语法变为

  void keyboard( unsigned char key, int x, int y )
  {
      switch( key )
      {
          case  27:
          case 'q':
          case 'Q':
              exit( 0 );
              break;

         case 'a': ...

         case 'b': ...
      }
  }