开发者

How do I use a boolean operator in a case statement?

I just Don't understand how to use a boolean operator inside a switch statement

switch (expression开发者_StackOverflow社区) {
        case > 20:
            statements
            break;
        case < -20:
            statements
            break;
    }

Edit:

I don't want an If () statement.


You can't. Use if() ... else ....

The nearest thing available to what you want uses a GCC extension and is thus non-standard. You can define ranges in case statements instead of just a value:

switch(foo)
{
    case 0 ... 20: // matches when foo is inclusively comprised within 0 and 20
         // do cool stuff
         break;
}

However, you can't use that to match anything under a certain value. It has to be in a precise range. Switches can only be used to replace the comparison operator against a constant, and can't be used for anything more than that.


switch ((expression) > 20) {
        case true:
            statements
            break;
        case false:
        default:
            statements
            break;
    }

What.. you want more than 1 boolean in a case? You could do this

int ii = ((expression) > 20) + 2 * ((expression) < -20);
switch (ii) {
        case 1:
            statements
            break;
        case 2:
            statements
            break;
    }

This, IMO is pretty bad code, but it is what you asked for...

Just use the if statement, you'll be better off in the long run.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜