Показать сообщение отдельно
Старый 20.06.2012, 11:20
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Нет, не так. Условие проверяется при каждой итерации. Итерации продолжаются, пока оно выполняется. Как только оно перестает выполняться, итерации прекращаются. А оно при i == 0 не выполняется сразу, поэтому ничего и не происходит - цикл сразу и останавливается:

1) начинать цикл с var i, которая равняется количество элементов минус 1 (так как в массиве есть 0 элемент)
2) проверить условие, и если оно истинно, выполнить итерацию
3) уменьшать на 1 единицу значение счетчика.

Насчет 4) подсказать не могу. Частенько использую for in, но не в случаях, подобным вашему*. Думается, что тут задавать порядок обхода массива лучше все же, не полагаясь на алгоритм for in, а явно задавая текущие индексы.

------------------------
*for in удобен, например, когда используется ассоциативный массив и значения и/или порядок индексов по алгоритму не определен (пример - рандомно на поле добавляются юниты в игре).
__________________
Идите первым!


Последний раз редактировалось mooncar; 20.06.2012 в 12:07.