Где ошибка кода?
Стою на асфальте я в лыжи обутый, то ли лыжи не едут, то ли я ......
Что с кодом:
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, время: 03:29. |