8

これをC++でどのように行いますか?たとえば、ユーザーがESC、「q」、「Q」の両方を押した場合に、プログラムの終了をトリガーしようとしています。

探してみましたが、C++で構文が見つかりませんでした。if-elseでそれを行う方法を知っていますが、switch-caseでそれは可能ですか?もちろん、関数を作成して2つの別々の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

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 に答える