![]() |
цикл FOR не хочет останавливаться
На сцене есть поле ввода pole в котороя я ввожу количество повторений в цикле. Если ввожу 1 цикл работает 1 раз. Если ввожу число больше 1 то цикл выполняется бесконечно. Почему так?
Код AS1/AS2:
|
По крайней мере есть одна неправильность. Вы стартуете в цикле несколько "интервалов".
А удаляется интервал только один раз, последний. Что делает это кусок, зачем несколько раз задается повторное выполнение moveIt ? Код AS1/AS2:
setInterval запускает циклический повтор сам по себе, без приравнивания возвращаемого номера интервала. Если мы присваиваем какой-то переменной возвращаемый номер, а потом ссылаемся на нее при удалении интервала, то просто указываем номер интервала для удаления. Поэтому, если переменной (moveBk) мы присваиваем последовательно несколько возвращаемых номеров интервалов, то при ссылке на moveBk в clearInterval будет остановлен только последний присвоенный номер. А в цикле-то был несколько раз вызван setInterval, остальные-то предыдущие тоже нужно поудалять, если что. |
Разберитесь, для чего предназначена функция setInterval() и как ее использовать.
Некоторые замечания: moveBk - это что у вас? кнопка или идентификатор интервала? нет текста функции moveIt(), что она из себя представляет? // пардон, разглядел-таки. vperod, pusk, powtor, pole, povtoryt3, func ... - режет глаза. получаем плохо читаемый код в итоге, даже столь малый его кусок просматривать трудно. .... опа.. сразу не увидел: Цитата:
Цитата:
Цитата:
и да, у вас не цикл не хочет останавливается, у вас плодятся интревалы в цикле, mooncar прав, пожалуй. |
Код AS1/AS2:
and Код AS1/AS2:
|
По моим ощущениям, у него цикл-то останавливается, когда цикловое условие срабатывает, но вот процессы, которые им запущены, будучи безымянными и безответными, никак не прибить, если только не воспользоваться методом, предложенным AlexCooper.
Потом также в цикле нужно останавливать все интервалы. |
AlexCooper, и вы туда же?
Код:
pusk.onRelease = function () { |
alexcon314: Вообще я считаю бред создавать интервалы цыклом. Если б был весь код или хоть постановка задачи я уверен что можно сделать всё гараздо проще.
Добавлено через 2 минуты но кажись, мой код верен с точки зрения функционирования... |
Постановка задачи такова:
Исполнитель типа "черепашки"(LOGO). Есть определённые действия которые можно выполнять 3 алгоритмами:линейным, ветвлением и циклом. Сначала задаём все действия, а потом нажимаем на кнопку и они по очереди выполняются. Это фрагмент программы в котором нужно реализовать цикл но при этом чтоб и при использовании без цикла программа тоже исполнялась. Всё готово кроме цикла. С циклом вот такие проблемы Добавлено через 2 минуты AlexCooper, ваш код не работает.( Может я что то не так делаю) |
alexcon314 хочет сказать
Код AS1/AS2:
Код AS1/AS2:
Код AS1/AS2:
|
то что хотел сказать alexcon314 тоже не работает
|
| Часовой пояс GMT +4, время: 22:11. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.