JS / PHP / RUBY Elegant switch para casos lógicos

Considere o seguinte exemplo de código Javascript:

var x = 90;
if(x>100)
alert
("x > 100");
else if(x > 90)
alert
("x > 90");
else if(x > 80)
alert
("x > 80");
else if(x > 70)
alert
("x > 70");
else
alert
("x <= 70");

feio não é?

Agora considere o próximo exemplo:

var x = 90
switch(true) {
case x > 100:
alert
("x > 100");
break;
case x > 90:
alert
("x > 90");
break;
case x > 80:
alert
("x > 80");
break;
case x > 70:
alert
("x > 70");
break;
default:
alert
("x <= 70");
break;
}

Agradável?

Exemplo ao vivo (Javascript):

http://jsfiddle.net/marcelow/ME9tD/

a mesma ideia também funciona em outras linguagens de programação:

Rubi:

class NiceSwitchCase
def doTheSwitch
x
= 90
case true
when x > 100
puts
"x > 100"
when x > 90
puts
"x > 90"
when x > 80
puts
"x > 80"
else
puts
"x <= 80"
end
end
end

niceSwitchCase
= NiceSwitchCase.new
niceSwitchCase
.doTheSwitch

Exemplo ao vivo:

http://runnable.com/me/UwJvTxExgQIsAABE

PHP:

$x = 90;
switch(true) {
case $x > 100:
echo
"x > 100";
break;
case $x > 90:
echo
"x > 90";
break;
case $x > 80:
echo
"x > 80";
break;
case $x > 70:
echo
"x > 70";
break;
default:
echo
"x <= 70";
break;
}

Exemplo ao vivo:

http://runnable.com/me/UwJy7a-CsDIsAACI