Загадка#6

Необходимо реализовать метод test, так, чтобы он возвращал кол-во его вызовов:

private function test():uint
{
    // какой-то код
}

var num:uint = Math.random() * 20;
for (var i:int = 0;i<num;++i)
{
    test();
}
trace(num + 1 === test());//true

-использовать динамику нельзя;
-объявлять переменные и константы вне метода нельзя.

4 комментария

  • Merlin
    27.03.2014 - 21:17 | Permalink


    private function test():uint
    {
    var so:SharedObject = SharedObject.getLocal("test");
    var num:int = int(so.data['num']) + 1;
    so.setProperty('num', num);
    return num;
    }

    🙂

    • 28.03.2014 - 07:38 | Permalink

      Решение не принимается, так как не удовлетворяет условию задачи (использовать динамику нельзя).

  • 18.08.2015 - 11:34 | Permalink

    Не совсем понятно. Получается, что надо просто
    private function test():uint
    {
    return num+1;
    }

    Ведь согласно заданной схемы num видно внутри функции test().

    Уточни условие. Предполагаю что задача много интереснее…

    • 20.08.2015 - 18:07 | Permalink

      Понятное дело, что num здесь для примера. Вот такой код:
      test();
      test();
      test();
      trace(test());
      должен вывести 4.

      А например такой:
      test();
      trace(test());
      должен вывести 2.
      И любое другой аналогичный код, должен вывести соответственно число, которое равняется числу вызовов test в коде.

  • Добавить комментарий

    Ваш e-mail не будет опубликован. Обязательные поля помечены *