switch case文の中で演算

switchの意外な使い方を発見したのでメモ。(私のような素人プログラマには驚きだったものですので)
型チェックを例にすると・・・。
以下if文を使用した例。

var hoge:Array = [];

if (hoge is XML)
{
	trace(0);
}
else if(hoge is Array)
{
	trace(1);//ここがtraceされる
}
else if(hoge is Sprite)
{
	trace(2);
}

以下switch文を使用してやる例。

var hoge:Array = [];

switch(true)
{
	case hoge is XML:
		trace(0);
		break;
	case hoge is Array:
		trace(1);//ここがtraceされる
		break;
	case hoge is Sprite:
		trace(2);
		break;
	default:
		break;
}

以上です。

ちなみに条件にもよるかと思いますがAS3ではifよりswitchの方が速いようです。
http://wonderfl.net/code/58b9fe83203fb49db603a1df15f39c6692219fdb