Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> for внутри for 
V
    Опции темы
neoks
Дата 15.8.2011, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 5.7.2010

Репутация: нет
Всего: 1



Прошу не бить ногами, это невероятно но я толком не могу найти в инете почему ?
Почему цикл for не работает внутри цикла for, происходит это так, запускается первый цикл и прерывается вторым который успешно выполняет цикл.

Вот стало интересно почему так происходит и можно это вообще решить проблему, может и нельзя так ?

PM MAIL   Вверх
нуп
Дата 15.8.2011, 15:19 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 13
Всего: 33



Значит где-то косяк, предположительно с 17- строке
PM MAIL   Вверх
rodnover
Дата 15.8.2011, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 7.4.2009

Репутация: нет
Всего: 10



точки с запятой вконце фора нет?

Код

for (;;);



Это сообщение отредактировал(а) rodnover - 15.8.2011, 15:45
PM MAIL   Вверх
Evghenusi
Дата 15.8.2011, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: 1
Всего: 15



может у вас в обоих циклах одна и так же переменная для инкремента (хз как правильно выразиться), и если всё же ошибка не в 17 строке, то покажите код
PM WWW   Вверх
neoks
Дата 15.8.2011, 16:41 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 5.7.2010

Репутация: нет
Всего: 1



Ошибки вроде нет.
Вот отрывок кода:
Код

function show_bg(url,callback){
            for(i=0;i<7;i++){
                
            }
}
for(i=position;i < 7;i++){
                    
                    if(i==position){
                        find_block.eq(i).animate({left:'-500px',opacity:0},400);
                        show_bg(find_block.eq(position).attr('url'));
                    }
                    else{
                    
                    }
}


Не знаю почему но else не выполняется, срабатывает функция show_bg и все цикл прерывается, смотрел в firebug молчит.
PM MAIL   Вверх
Evghenusi
Дата 15.8.2011, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: 1
Всего: 15



Цитата(neoks @  15.8.2011,  16:41 Найти цитируемый пост)
Ошибки вроде нет.


может у вас в обоих циклах одна и так же переменная для инкремента (хз как правильно выразиться)
PM WWW   Вверх
neoks
Дата 15.8.2011, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 5.7.2010

Репутация: нет
Всего: 1



Взял простой код для испытания так там все работает.

Код

function show_bg(){
    for(i=0;i<200;i++){
    
    }
}

for(i=0;i<6;i++){
    if(i==1){
        show_bg();
    }
    else{
        alert('f');
    }
}


Хм, почему же предыдущий не работает.

Добавлено через 2 минуты и 37 секунд
Цитата(Evghenusi @  15.8.2011,  16:44 Найти цитируемый пост)
может у вас в обоих циклах одна и так же переменная для инкремента (хз как правильно выразиться) 


И вправду работает  smile , а почему нельзя так, лан буду теперь знать !!!!

PM MAIL   Вверх
нуп
Дата 15.8.2011, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 13
Всего: 33



Код

function show_bg(url,callback){
            for(var i=0;i<7;i++){
                
            }
}
for(var i=position;i < 7;i++){
                    
                    if(i==position){
                        find_block.eq(i).animate({left:'-500px',opacity:0},400);
                        show_bg(find_block.eq(position).attr('url'));
                    }
                    else{
                    
                    }
}

А так
PM MAIL   Вверх
Evghenusi
Дата 15.8.2011, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: 1
Всего: 15



Цитата(neoks @  15.8.2011,  16:44 Найти цитируемый пост)

И вправду работает  smile , а почему нельзя так, лан буду теперь знать !!!!

слава боженьке вы меня услышали

я всего лишь любитель, поэтому могу ошибаться, но я так понимаю логику:

первый цикл производит первую итерацию, в это время запускается второй и производит 7 итераций, меняя значение переменной, снова наступает очередь первого, и первый проверяя переменную получает новое значение, а именно i=7, а так как цикл до i < 7, то дальше и "двигаться" не надо.

если я не прав, буду рад критике

Это сообщение отредактировал(а) Evghenusi - 15.8.2011, 16:52
PM WWW   Вверх
neoks
Дата 15.8.2011, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 5.7.2010

Репутация: нет
Всего: 1



И все таки php и javascript разные вещи, по привычки из php как я всегда пользуюсь циклом for и токого не доводилось испытывать.
В справочниках пишут что цикл for почти одинаковые по  php, но не узнаеш что такое почти пока не испробуеш  smile 
PM MAIL   Вверх
нуп
Дата 15.8.2011, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 13
Всего: 33



Просто надо прочитать о области видимости переменной Тыц
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0589 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.