Показать сообщение отдельно
Старый 18.09.2009, 10:26
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 5  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Ошибся - UPD:
Cперва происходит приращение, затем формальный прогон вычислений внутри цикла, в конце тела - заход на новый виток и проверка условия с новым значением счетчика.
То есть внутри интерпретатора - для вычислений цикл заканчивается на 5, но если условие при заходе по новой не выполняется, результаты вычислений не используются.
Но трейс при этом уже был.

Тут нужно низкоуровневое осмысление этого процесса. Видимо так сделано в угоду производительности вычислений. Вычисления уже готовы, а вот использовать их или нет - завист от условия.

Добавлено через 8 минут
Еще такая версия - язык "не понимает", что такое "<" - то есть меньше. Вычисление сравнения - сложная операция. Интерпретатор скорее всего проверяет равенство. Если числа равны, то результат последних вычислений не принимается.
Это мне кажется наиболее правильным объяснением.


Последний раз редактировалось mooncar; 18.09.2009 в 10:30.