Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.08.2011, 16:27
Аспирант
Отправить личное сообщение для Sundro Посмотреть профиль Найти все сообщения от Sundro
 
Регистрация: 25.05.2011
Сообщений: 46

Бесконечный цикл
Вот цикл,
for (1i > 6 + countDayThisMonth; 2i = 41; i--, countDayBeforeMonth--){
alert(i)
alert(countDayBeforeMonth)
td[i].innerHTML = countDayBeforeMonth
td[i].className = 'nothisMonth'
}

При выполнении программы стало ясно что он бесконечный =)
Для меня такое поведение его было неочевидным, обратился к Фленагану,
разведать синтаксис:
for(инициализация; проверка; инкремент){
инструкция
}
На этапе иницализации было выполнено выражение 1i > 6 + countDayThisMonth, что получит цикл в качестве инициализатора в результате сравнения, ведь i не объявлена, поскольку это 2i = 41 условие проверки, из за чего цикл вечный и получился?
Ответить с цитированием
  #2 (permalink)  
Старый 07.08.2011, 16:59
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,576

==
__________________
29375, 35

Последний раз редактировалось Aetae, 07.08.2011 в 17:07.
Ответить с цитированием
  #3 (permalink)  
Старый 07.08.2011, 17:01
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Смешная ошибка)
__________________
kobezzza
code monkey
Ответить с цитированием
  #4 (permalink)  
Старый 07.08.2011, 17:09
Аспирант
Отправить личное сообщение для Sundro Посмотреть профиль Найти все сообщения от Sundro
 
Регистрация: 25.05.2011
Сообщений: 46

Сообщение от Aetae Посмотреть сообщение
==
Простите не понял, можно поподробнее ?
Ответить с цитированием
  #5 (permalink)  
Старый 07.08.2011, 17:32
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,576

ссылку щёлк
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 07.08.2011, 20:12
Аспирант
Отправить личное сообщение для Sundro Посмотреть профиль Найти все сообщения от Sundro
 
Регистрация: 25.05.2011
Сообщений: 46

Цитата:
Больше (>) Возвращает true, если левый операнд больше правого. var2 > var1
Здесь не описаны случаи когда сравниваются несравнимые величины (тк ка i не определено то оно undefined, по моему скромному мнению здесь должна выскакивать ошибка или я чего то не понимаю)
Ответить с цитированием
  #7 (permalink)  
Старый 07.08.2011, 20:14
Аспирант
Отправить личное сообщение для Sundro Посмотреть профиль Найти все сообщения от Sundro
 
Регистрация: 25.05.2011
Сообщений: 46

Ошибку я конечно исправил, но хочется докопаться до истины и понять что там происходит, раз уж случилось =)
Ответить с цитированием
  #8 (permalink)  
Старый 08.08.2011, 11:53
Аспирант
Отправить личное сообщение для ctpz Посмотреть профиль Найти все сообщения от ctpz
 
Регистрация: 30.06.2011
Сообщений: 63

ты используешь знак присвоения (=). Если ты хочешь проверить содержимое переменной в цикле, то надо писать ==
Ответить с цитированием
  #9 (permalink)  
Старый 08.08.2011, 13:58
Аспирант
Отправить личное сообщение для Sundro Посмотреть профиль Найти все сообщения от Sundro
 
Регистрация: 25.05.2011
Сообщений: 46

Ааааа. Точно блин...иногда случается, что мозги набекрень идут
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
цикл идет через 1н элемент розовый слоник Общие вопросы Javascript 8 07.02.2011 15:48
Подправьте цикл albal Общие вопросы Javascript 2 15.12.2010 07:03
зависает цикл Артем125 Общие вопросы Javascript 1 21.04.2010 21:41
бесконечный цикл вызова torquemada jQuery 12 17.04.2010 21:58
Цикл по getElementById GogElf Общие вопросы Javascript 7 10.04.2009 19:12