Собственно, тесты:
1. Тест на сравнение '==', результат:

Код:
Test started, 100000000 iterattions!
if: 1453 milisecconds
switch: 1831 milisecconds
version: WIN 10,1,52,14
2. Тест на условие '<', результат:

Код:
Test started, 100000000 iterattions!
if: 1272 milliseconds
switch: 6568 milliseconds
version: WIN 10,1,52,14
Код тестов одинаковый, меняются лишь условия:

Код AS3:
import flash.events.TimerEvent;
import flash.utils.Timer;
import flash.system.Capabilities;
var test:int = 100000000;
var timer:Timer = new Timer(1000, 1);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, startTest);
timer.start();
trace('Test started, '+test+' iterattions!');
function startTest(e:TimerEvent):void{
var b:int = 0;
var timeStart:Number = getTimer();
for(var i:int = 0; i<test; i++){
if(i<0){
b++;
}else if(i<0){
b++;
}else if(i<0){
b++;
}
}
trace('if: '+(getTimer()-timeStart)+' milliseconds');
b = 0;
timeStart = getTimer();
for(var j:int = 0; j<test; j++){
switch(j){
case j<0:
b++;
break;
case j<0:
b++;
break;
case j<0:
b++;
break;
}
}
trace('switch:'+(getTimer()-timeStart)+' milliseconds');
trace('version: '+Capabilities.version);
}
Добавлено через 13 минут
Switch подходит для сравнения конкретных результатов, вкладывая в него '<' мы фактически создаем ещё одно под условие, отсюда такой плохой результат.
Писать его не сложно и он очень удобен для перебора заранее известных результатов. Получаются ясные и красивые конструкций.
Добавлено через 25 минут
Особенно стоит отметить возможность указания последовательных меток в switch:

Код AS3:
case 1:
case 2:
case 3:
// code
break;