你如何在switch语句中使用逻辑或部分内容?

时间:2012-08-16 21:17:19

标签: c++ switch-statement logical-operators

如果你有一个switch语句,并希望在值为一个值时运行某些代码,你会怎么做?以下代码始终为默认情况。

#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;
}

5 个答案:

答案 0 :(得分:9)

像这样:

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

被称为“堕落”。

只是要指出default案例在发布的代码中执行的原因是5 || 2的结果是1true)。如果您在发布的代码中将x设置为1,则会执行5 || 2案例(请参阅http://ideone.com/zOI8Z)。

答案 1 :(得分: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,因为它是一个逻辑表达式),你可以尝试一下。

答案 2 :(得分:3)

switch 落实

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

答案 3 :(得分:1)

case2:
case5:
   //do things
   break;

答案 4 :(得分:1)

Here is a really good read关于switch / case以及它们在C / C ++和其他一些您可能想知道的标签信息(ABCD :)之间的细微差别。