Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   как увеличить значение переменной не меняя знак? (http://www.flasher.ru/forum/showthread.php?t=116527)

Wolsh 05.10.2008 00:54

Хм. А зачем огород городить? Почему не создать функцию, возвращающую сразу то что надо, без промежуточных вычислений
Код:

function inc(variable:Number, delta:Number):Number
{
    return !variable ? 0 : variable>0 ? variable+delta : variable-delta;
}
//// проверка
trace(inc(-500, 20));
trace(inc(500, 20));
trace(inc(-500, -20));
trace(inc(500, -20));

//// usage:  n = inc(n, 10)


orcpochta 05.10.2008 01:44

Цитата:

Сообщение от Division (Сообщение 768009)
ИМХО человеческий вариант это написать функцию, которая возвращает знак.
Код:

function Sign(num) {
  if (!num) return 0;
  return num>0?1:-1;
}

n+=Sign(n)*10;


не знал, что num == 0 и num, не переданная в функцию, - это !num (т.е. одно и то же). Как так?

Fernando Costa 05.10.2008 01:53

Код:

trace(!undefined)

Wolsh 05.10.2008 02:56

Цитата:

не знал, что num == 0 и num, не переданная в функцию, - это !num (т.е. одно и то же). Как так?
При переводе числа в булево значение только 0 преобразуется в false, а положительное или отрицательное число - в true.


Часовой пояс GMT +4, время: 00:01.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.