Дострочное пересдача экзамена
|
Манипулирование данными
Операторы
Операторы – это "знаки" внутри выражений, именно они управляют вычислениями, указывают, что следует делать с входящими в состав выражения значениями. Операторы бывают различных типов; какие использовать – зависит от того, как именно вы хотите манипулировать данными.
Примечание В этом разделе рассматриваются арифметические операторы. Информацию об операторах сравнения и логических операторах вы найдете в Уроке 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 определяется следующими правилами приоритета:
- Все вычисления в скобках выполняются раньше, чем вычисления вне скобок. Если вы хотите точно контролировать порядок вычислений в своих выражениях, используйте скобки.
- Действия умножения и деления выполняются раньше, чем сложение и вычитание. Между собой умножение и деление имеют равный приоритет, и потому, если в выражении имеется несколько таких операторов, они выполняются (при отсутствии скобок) по порядку следования слева направо.
- Сложение и вычитание выполняются в последнюю очередь. Эти действия имеют равный приоритет, они выполняются (при отсутствии скобок) по порядку следования слева направо.
Давайте рассмотрим несколько примеров.
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.