Показать сообщение отдельно
Старый 10.03.2010, 15:53
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 1  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
По умолчанию Куда делось 7 n? (Duff's device)

Код AS3:
var n:int = 8;
var a:Array/*int*/ = [];
var from:int = 100;
 
trace(n);
 
switch (--n)
{
	case 7: a[n] = from++;
	case 6: a[n] = from++;
	case 5: a[n] = from++;
	case 4: a[n] = from++;
	case 3: a[n] = from++;
	case 2: a[n] = from++;
	case 1: a[n] = from++;
	case 0: a[n] = from++;
	default: break;
}
trace(a, n, from);
Объясните пожалуйста!

EDIT: Оказалось, что условие switch'a не проверяется в каждом кейсе...
Код AS3:
var n:int = 0;
var a:Array/*int*/ = [];
var from:int = 100;
 
trace(n);
 
switch (true)
{
	case 0: a[n++] = from++;
	case 1: a[n++] = from++;
	case 2: a[n++] = from++;
	case 3: a[n++] = from++;
	case 4: a[n++] = from++;
	case 5: a[n++] = from++;
	case 6: a[n++] = from++;
	case 7: a[n++] = from++;
	default: break;
}
trace(a, n, from);
Кстати, если сделать так - нас встретит VerifyError
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 10.03.2010 в 16:04.