4

如果你有一个 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;
}
4

5 回答 5

11

像这样:

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

被称为“跌倒”。

只是要指出,default在发布的代码中执行案例的原因是结果5 || 21true)。如果您在发布的代码中设置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

这是一篇关于 switch/case 以及它们在 C/C++ 之间的细微差别以及您可能想知道的有关标签 (ABCD:) 的一些其他信息的非常好的读物。

于 2012-08-16T22:32:16.733 回答