Are there any draw backs to using this kind of Switch statement?

Basically I discovered that I’m able to use switch statements to compare values other than just “==”.
I wondered as I’ve not seen this technique being used very widely are there any obvious draw backs to this approach, or is this a completely legitimate way of switching through value comparisons.

var value : int = 50;
var isWorking : boolean = true;

switch(isWorking){ //can be anything boolean
        case (value > 10) : 
        		//Do Stuff
        break;
        case (value > 5) : 
        		//Do Stuff
        break;
        default :
        		//Do Default Stuff 
        break;
 }

First of all i don't see the reason why you would do this. Isn't it much clearer and shorter this way:

var value : int = 50;

if (value > 10)
{

}
else if (value > 5)
{

}
else
{

}

AFAIK the switch statement only works with constant expressions. I guess the compiler evaluates "(value > 10)" to "true" (because value is 50) so it won't work when you change the value at runtime. Beside that the case expressions have to be unique. You can't have two case statements with the same value. You use a boolean so there are only two possible values: "true" and "false". Your two first cases evaluates to true, so what case would you expect to run? The first? the second? both?

You should write code in a way that's clear and easy to read / understand. Even when it works in some way, most other people that have to work with your code don't have a clue what you want to do here.

edit

I've tested it. It seems that it works exactly like my if else chain in UnityScript. That means when you exchange your two case statements (value > 5) before (value > 10) it won't work. case statements usually don't have to be in an explicit order this "special" case requires it.

Hmm, from what i know of "switch", you're doing it wrong. In switch(true), the true should be the vriable to be compared to different cases, so in your example, you'd have case(true), case(false) and eventually default. If you want to compare value, then you should have switch(value).