Показать сообщение отдельно
Старый 16.09.2008, 17:18
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 5  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
В for сначала проверяется условие, а потом выполняется декремент при успешности, а в while всегда.
Код:
var i:int=4;
var j:int=4;
for (i; i>0; i--) {
	for (j; j>0; j--) {
		trace (i,j);
	}
	trace (i,j)
}
Код:
var i:int=4;
var j:int=4;
while (i--) {
	while (j--) {
		trace (i,j);
		if (i==0 || j < -20) {
			trace ("--")
			break;
		}

	}
	if (i==0 || j < -20) {
		trace ("-")
		break;
	}
}
trace (i,j);
Поэтому после первого выполнения условия j == 0 (при i == 3), потом был еще один декремент и j стало равным -1 и соотвественно при i == 2, второй раз условии стало недостижимым.
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 16.09.2008 в 17:21.