Ну гм... 5 Проверок значения переменной a:

Код AS1/AS2:
switch a
case break;
case break;
case breakl
...
или

Код AS1/AS2:
if (a==...)
else if (a==...)
else if (a==...)
else if (a==...)
else if (a==...)
Мне последний более понятен - я читаю строчку - я ВИЖУ имя переменной, не смотря вверх - и читаю код более быстро. Это в примере выше все просто, а если команд много - то найти свич - это какое то время, а после нужно вернуться в место case`а. Если есть прокрутка кода (т.е. кода этих условий больше, чем на один экран) - это тратит время, согласитесь.
Но как сказал __etc, раз в байткоде это и есть тонны if`ов, то беспокоиться нечего)
Вдогонку: оператор ? тоже рассматривается как if/else?
И кстати проверяет он условия все сверху вниз? Т.е. наиболее вероятные исходы при if/else if следует разместить в самом первом if, чтобы он не просчитывал остальные?
Ну и ещё вдогонку: есть переменные a и b, оба булевы.
Я пишу:

Код:
if (a && b) ...
но могу ведь и

Код:
if (a){
if (b){
...
}
}
Теперь мне интересно, если a=false, то во 2 случае проверка b вообще производиться не будет. А в 1 случае будет? Если нет - это ведь какая никакая экономия CPU =)