Где ошибка кода?
Стою на асфальте я в лыжи обутый, то ли лыжи не едут, то ли я ......
Что с кодом: for (ii=0; ii<=YyY; ii++) { for (i=0; i<=XxX; i++) { iii = i*ii+i; a_gameDB[iii] = Math.ceil (Math.random ()*((XxX*YyY-(iii))/10+4)); s_gameDB += a_gameDB[iii]+'/'; document.getElementById('screen_right').innerHTML += a_gameDB[iii]+'-'; } } document.getElementById('screen_right').innerHTML +='<br>' + s_gameDB + '<br> '; for (i=0; i<=XxX*YyY; i++) { document.getElementById('screen_right').innerHTML += a_gameDB[i]+'-'; } Первый цикл в цикле создает массив a_gameDB из чисел и строку s_gameDB из тех же чисел, а во втором цикле опять перебирая массив программа выдает совершенно другие числа. Уже второй час туплю не понимаю в чем дело? :( |
Потому что
a_gameDB[i*ii+i] =бред. Вы уверены, что на каждой итерации итератор будет ровно на единицу больше предыдущего? Для этого у массивов существует метод push. Ну и еще немного: - ii и i у вас объявлены до циклов? Если нет, захламляете глобал, используйте for (var i = 0;... - не используйте одинаковые названия итераторов для циклов (у вас 2 цикла с i = 0), тоже может вызвать проблему - не используйте "XxX*YyY" в условии цикла, иначе умножение будет выполнятся на каждой итерации - не используйте document.getElementById('screen_right') в цикле, создайте переменную до цикла var screen_right = document.getElementById('screen_right');, а в цикле используйте ее: screen_right.innerHTML |
Цитата:
|
Цитата:
2. Почему я захламляю глобал если они постоянно используются у меня в множестве циклов по всему коду. 3. Каким образом? 4. согласен. 5. А вот про это стоп, я использую это просто, чтобы просмотреть что творится с циклом, этого момента в коде не будет. |
Цитата:
3. Да ничего ничему не будет мешать, если циклы не вложенные. |
Цитата:
Цитата:
|
Цитата:
Но все же в чем ошибка? |
ААААААААААААААААААААААААА , лыжи едут!
Не i*ii+i, а XxX*ii+i. |
Часовой пояс GMT +3, время: 07:47. |