![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2011
Сообщений: 100
|
Объясните, я не понимаю поведение вот этого куска.
Угадайте, скока он выводит? var pos: Point = new Point(); var cc: Number = 0; for (pos.x; (pos.x < 30); pos.x++) { for (pos.y; (pos.y < 30); pos.y++) { cc++; } } trace( cc ); Собственно вопрос - почему?) Да, если переписать вот так: var pos: Point = new Point(); var cc: Number = 0; for (pos.x = 0; (pos.x < 30); pos.x++) { for (pos.y = 0; (pos.y < 30); pos.y++) { cc++; } } trace( cc ); Всю голову изломал, не понимаю. |
|
|||||
|
Добавьте трейсы и поймете почему так происходит:
В начале второй итерации внешнего цикла переменная pos.y уже равна 30. Поэтому внутренний цикл выполняется только один раз. Во втором же случае вы каждый раз инициируете pos.y нулем. |
|
|||||
|
Регистрация: Feb 2011
Сообщений: 100
|
Глупейшая моя ошибка. Спасибо!)
|
|
|||||
|
значение у во вложенном цикле не обнуляется
получается что он прокручивается только один раз, и в остальные 29 заходов внешнего цикла внутренний пропускается
__________________
Хороший отдых - половина работы. |
|
|||||
|
Регистрация: Feb 2011
Сообщений: 100
|
Просто прикол ещё в том, что отладчик FlashDevelop пустые циклы не показывает. Он сразу перескакивает в конец второго цикла, я и не вкурил что внешний цикл продолжает крутится. Было похоже на простой выход после первой итерации!
|
![]() |
![]() |
Часовой пояс GMT +4, время: 06:34. |
|
|
« Предыдущая тема | Следующая тема » |
|
|