Просмотр полной версии : Операция с двойным циклом
Tetraeon
05.09.2012, 01:10
Приветствую, подскажите как можно провести операцию с двумя циклами так чтобы к каждому элементу первого массива применялись действия 2х элементов второго массива... если трейсить двойной цикл в такой форме:
for (var q:int=0; q<massiveOne.length; q++)
{
for (var w:int=0; w<massiveTwo.length; w++)
{
trace(q, w);
}
}
В данном случае выводит к каждому эл-ту 1 массива применяется все элементы 2го массива
а нужно вот такое:
0 0
0 1
1 2
1 3
2 4
2 5
Пробовал w++ менять на Math.floor(w+=0,5) и все в таком духе.. программа зависала.
var secondIndex:int = 0;
for (var q:int = 0; q < massiveOne.length; q++)
{
for (var w:int = 0; w < 2 && secondIndex < massiveTwo.length; w++, secondIndex++)
{
trace(q, secondIndex);
}
}
Tetraeon
05.09.2012, 18:30
Спасибо большое, это очень поможет и в будущем.
Не подскажите, а почему при использовании двойного цикла статический массив(другого класса) ссылающийся на положение объектов на сцене перестает отслеживать положение этих объектов?
Вот в такой форме:
var secondIndex:int = 0;
for (var q:int = 0; q < massiveOne.length; q++)
{
trace(massiveOne[q].x); //Отслеживает
for (var w:int = 0; w < 2 && secondIndex < massiveTwo.length; w++, secondIndex++)
{
trace(massiveOne[q].x); //Не отслеживает
}
}
Т.е. я не беру в счет через сколько позиций проскакивает массив, главное что отслеживание не ведется.
Могу предположить, что второй трейс не вызывается по причине того, что secondIndex в какой-то момент становится равным massiveTwo.length, и с этого момента тело внутреннего цикла перестает выполняться вовсе.
Tetraeon
05.09.2012, 20:42
Вы оказались правы, спасибо за информацию при много вам благодарен.
Вот таким образом выкрутился:
for (var q:int = 0; q < massiveOne.length; q++)
{
if(secondIndex==massiveTwo.length)
{
secondIndex=0;
}
for (var w:int = 0; w < 2 && secondIndex < massiveTwo.length; w++, secondIndex++)
{
trace(secondIndex, q);
}
}
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.