4

switchステートメントがあり、値が1つの値または別の値であるときに特定のコードを実行したい場合、どのように実行しますか?次のコードは常にデフォルトの場合になります。

#include <iostream>
using namespace std;

int main()
{
    int x = 5;
    switch(x)
    {
        case 5 || 2:
            cout << "here I am" << endl;
            break;
        default:
            cout << "no go" << endl;
    }

    return 0;
}
4

5 に答える 5

11

このような:

switch (x)
{
case 5:
case 2:
    cout << "here I am" << endl;
    break;
}

「フォールスルー」として知られています。

default投稿されたコードでケースが実行される理由は、の結果5 || 21( )であるということを指摘するだけtrueです。投稿されたコードで設定xすると、ケースが実行されます(http://ideone.com/zOI8Zを参照)。15 || 2

于 2012-08-16T21:18:24.720 に答える
7

それを失敗させる:

int main()
{
    int x = 5;
    switch(x)
    {
        case 5:
        // there's no break statement here,
        // so we fall through to 2
        case 2:
            cout << "here I am" << endl;
            break;
        default:
            cout << "no go" << endl;
    }

    return 0;
}

5 || 2ちなみに、1(またはtrue、論理式なので、)と評価されるので、試してみることができます。

于 2012-08-16T21:18:21.847 に答える
3

switch フォールスルーしましょう:

switch(x)
{
    case 2:
    case 5:
        cout << "here I am" << endl;
        break;
    default:
        cout << "no go" << endl;
}
于 2012-08-16T21:18:21.313 に答える
1
case2:
case5:
   //do things
   break;
于 2012-08-16T21:21:13.067 に答える
1

これは、スイッチ/ケースと、C / C ++とラベル(ABCD:)に関するその他の情報とのわずかな違いについての非常に良い読み物です。

于 2012-08-16T22:32:16.733 に答える