Опубликован: 04.11.2006 | Уровень: специалист | Доступ: платный
Урок 8:

Манипулирование данными

< Урок 7 || Урок 8: 1234 || Урок 9 >

Операторы

Операторы – это "знаки" внутри выражений, именно они управляют вычислениями, указывают, что следует делать с входящими в состав выражения значениями. Операторы бывают различных типов; какие использовать – зависит от того, как именно вы хотите манипулировать данными.

Примечание В этом разделе рассматриваются арифметические операторы. Информацию об операторах сравнения и логических операторах вы найдете в Уроке 9 – Использование логических условий.

Арифметические операторы

Большинство арифметических операторов вам знакомо – даже если вы никогда не сталкивались ни с ActionScript, ни с программированием вообще. В выражениях эти операторы служат для манипуляций с числовыми значениями.

  • Оператор сложения (+). Служит для сложения двух чисел. Пример: totalCost = productPrice + tax ; – результат получается сложением значений двух переменных.
  • Оператор инкремента (++). Прибавляет к значению единицу. Пример: ++myAge; – значение переменной myAge увеличивается на 1 (эквивалент выражения myAge = myAge + 1 ;).
  • Оператор вычитания (-). Служит для вычитания одного значения из другого. Пример: moneyInWallet = paycheck – moneySpent; – результат получается вычитанием moneySpent из paycheck.
  • Оператор декремента (--). Уменьшает значение на единицу. Пример: --bottlesOfBeer ; – бутылок пива станет на одну меньше.
  • Оператор умножения (*). Умножает одно числовое значение на другое. Пример: hoursPer-Week = 24 * 7 ; – количество часов в неделе получается в результате умножения 24 на 7.
  • Оператор деления (/). Делит одно число на другое. Пример: hourlyRate = paycheck / hoursBilled ; – итог получается делением значения paycheck на значение hoursBilled.
  • Оператор нахождения остатка от деления (%). Выдает остаток от деления одного целого числа на другое. Пример: 4 % 2; – результатом будет 0, поскольку 4 делится на 2 без остатка. Пример: 7 % 3; – даст результат 1, так при делении 7 на 3 получается 2 и остаток 1.

Строковые операторы

Для операций со строками имеется лишь один оператор – оператор конкатенации (впрочем, манипулировать строковыми значениями можно еще и с помощью различных методов объекта String). Другие операторы (присвоения и сравнения) хотя и могут работать со строковыми значениями, но не манипулируют непосредственно самой строкой (подробнее об операторах сравнения – в Уроке 9, Использование логических условий.

  • Оператор конкатенации (+). Конкатенацией называется соединение, "склеивание" двух строк. Оператор конкатенации, который обозначается знаком +, как и оператор сложения чисел, объединяет два строковых значения в одну строку. Пример: burthDayMessage = "Мне исполнилось " + age + " лет." ;. Здесь операторы конкатенации соединят три части сообщения вместе; если age имеет значение 26, то в результате получится строка "Мне исполнилось 26 лет.".

Совет В отличие от некоторых других языков программирования, в ActionScript не требуется при создании переменной объявлять, значение какого типа она будет содержать. В зависимости от контекста строка может рассматриваться как число и наоборот. В этом есть свои преимущества, но из-за этого же могут возникнуть и проблемы. Дело вот в чем. Поскольку знак "плюс" (+) служит для обозначения сразу двух операторов – сложения чисел и конкатенации строк, Flash должен знать, с какими значениями он имеет дело – со строками или числами. При этом могут возникать недоразумения, особенно если данные загружаются из внешних источников. Например, Flash в выражении вроде PayCheck1 + PayCheck2 может посчитать два числа строками, и, вместо того, чтобы складывать, "склеит" их (45+65 даст результат "4565" вместо 110). При получении данных из внешних источников или полей, в которые информацию вводит пользователь вы можете, во избежание ошибок, использовать функцию Number() – например, Number(PayCheck1) + Number(PayCheck2) – в этом случае вы можете быть уверены, что значения будут рассматриваться именно как числовые.

Приоритет

Нередко выражения содержат не один оператор, а сразу несколько. В этом случае важно точно представлять себе порядок их выполнения, который определяется приоритетом операторов. Вы прекрасно знаете, что математические действия над числами выполняются поочередно (например, возьмем выражение myNumber = 20 * 5 - 3: понятно, что нельзя произвести оба действия – умножение и вычитание – одновременно). Порядок вычислений в выражениях ActionScript определяется следующими правилами приоритета:

  1. Все вычисления в скобках выполняются раньше, чем вычисления вне скобок. Если вы хотите точно контролировать порядок вычислений в своих выражениях, используйте скобки.
  2. Действия умножения и деления выполняются раньше, чем сложение и вычитание. Между собой умножение и деление имеют равный приоритет, и потому, если в выражении имеется несколько таких операторов, они выполняются (при отсутствии скобок) по порядку следования слева направо.
  3. Сложение и вычитание выполняются в последнюю очередь. Эти действия имеют равный приоритет, они выполняются (при отсутствии скобок) по порядку следования слева направо.

Давайте рассмотрим несколько примеров.

myVariable = 5 + 7 - 3;

Поскольку сложение и вычитание имеют равный приоритет, в этом выражении операторы выполняются просто слева направо, переменной myVariable в результате будет присвоено значение 9.

myVariable = 5 + 7 * 3;

Поскольку умножение имеет приоритет перед сложением, сначала 7 умножается на 3, а затем к результату прибавляется 5. В итоге переменная myVariable получает значение 26.

myVariable = (5 + 7) * 3;

Поскольку вычисления в скобках имеют приоритет, сначала 5 прибавляется к 7, затем результат умножается на 3. В итоге переменная myVariable получает значение 36.

myVariable = ((2 + 8) * (4 – 2)) / 5;

Снова приоритет скобок: сначала складываются числа 2 и 8, затем из 4 вычитается 2. Эти два результата перемножаются, итог делится на 5. Переменной myVariable присваивается значение 4.


< Урок 7 || Урок 8: 1234 || Урок 9 >
Салтанат Бектегенова
Салтанат Бектегенова

Дострочное пересдача экзамена

 

Евгений Стародубцев
Евгений Стародубцев

Вот задание:

7. Открыв панель Действия (Actions) и установив ее в Экспертный режим(Expert Mode), выделите кадр 1 слоя Actions и введите следующий скрипт:

Евгения Дегтяренко
Евгения Дегтяренко
Украина, Запорожье
Анна Елисеева
Анна Елисеева
Россия, Великий Новгород, Ногородский государственный университет имени Ярослава Мудрого, 2003