8

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

我试过寻找它,但在 C++ 中没有找到它的语法。我知道如何使用 if-else 来做到这一点,但是否可以使用 switch - case?当然,我可以只创建一个函数并从两个单独的案例中调用它,但是有没有办法仅通过组合案例语句来做到这一点?

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

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

        case 'a': ...

                case 'b': ...
    }
}
4

4 回答 4

35

案件没有中断:

case  27: //could be 27
case 'q': //could be 27 or 'q'
case 'Q': //could be 27, 'q', or 'Q'
    exit(0);
    break;
于 2012-07-17T17:39:01.447 回答
1

我相信这只是

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

    ...

情况 A 和 B 都将执行相同的代码。

于 2012-07-17T17:39:57.507 回答
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': ...
    }
}
于 2012-07-17T17:40:42.587 回答
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': ...
      }
  }
于 2012-07-17T17:41:16.010 回答