Цитата:
|
Что-то подсказывает мне, что в свиче директива break останавливает внутренний цикл.
|
Как бы то ни было, тут есть еще одна проблема - в switch идет строгое сравнение, а == - это нестрогое. Показательный пример:

Код AS3:
package
{
import flash.display.Sprite;
public class Test extends Sprite
{
public function Test()
{
super();
var a:Object = "1";
var b:Object = 1;
trace("a == b", (a == b));
trace("a === b", (a === b));
switch (a)
{
// в первую очередь сравниваем с числом и тут проверка не дает результата
case 1:
trace("a is int");
break;
// а теперь сравниваем со строкой и проверка проходит
case "1":
trace("a is string");
break;
default:
trace("a is something from another universe");
}
}
}
}
Ну и, кстати, не выкидывает из цикла по break:

Код AS3:
package
{
import flash.display.Sprite;
public class Test extends Sprite
{
public function Test()
{
super();
for(var i:int = 0; i < 2; i++)
{
switch (i)
{
case 0:
trace("i == ", i);
break;
case 1:
trace("i == ", i);
break;
}
}
}
}
}