Шрифт:
Приведем еще два примера цикла со счетчиком:
for (i = 10; i > 0; i—) {
a += 3;
b = i * 2 + 1;
}
Здесь значение счетчика декрементируется. Начальное его значение равно 10. Цикл выполнится 10 раз и завершится, когда счетчик i будет содержать 0; при этом значения последнего будут последовательно уменьшаться от 10 до 1.
for (i = 2; i < 21; i += 2) b = i * 2 + 1;
А в этом примере начальное значение счетчика равно 2, а конечное — 21, но цикл выполнится опять же 10 раз. А все потому, что значение счетчика увеличивается на 2 и последовательно принимает значения 2, 4, 6… 20.
В особом "вырожденном" случае цикл for может даже не содержать тела. В этом случае "полезную нагрузку" цикла несет на себе выражение приращения.
Цикл с постусловием во многом похож на цикл со счетчиком, а именно, в том, что он выполняется до тех пор, пока остается истинным условие цикла.
Причем условие проверяется не до, а после выполнения тела цикла, отчего цикл с постусловием и получил свое название. Такой цикл выполнится хотя бы один раз, даже если его условие с самого начала ложно.
Формат цикла с постусловием:
do
<Тело цикла>
while (<Условиe>);
Для задания цикла с постусловием используются ключевые слова do и while. Поэтому такие циклы часто называют "циклами do-while".
Цикл с постусловием можно использовать различными способами. Например, так:
do {
а = а * i + 2; i = ++i;
} while (a < 100);
В рассмотренном выше примере проверяется наступление некого отвлеченного условия.
А можно записать такой цикл так:
var а = 0, i = 1; do {
а = а * i + 2;
i = ++i;
} while (i < 20);
Здесь мы используем счетчик, чье конечное значение ограничено. Хотя, конечно, в данном примере удобнее было бы использовать уже знакомый нам и специально предназначенный для таких случаев цикл со счетчиком.
Цикл с предусловием отличается от цикла с постусловием тем, что условие проверяется перед выполнением тела цикла. Так что, если оно (условие) изначально ложно, цикл не выполнится ни разу.
while (<Условиe>)
<Тело цикла>
Для создания цикла с постусловием используется ключевое слово while. Поэтому такие циклы называют еще "циклами while" (не путать с "циклами do-while"!).
Пример цикла с предусловием:
while (а < 100) {
а = а * i + 2;
i = ++i;
}
Иногда бывает нужно прервать выполнение цикла. Для этого Flash предоставляет программистам действия break и continue.
Действие break позволяет прервать выполнение цикла и перейти к следующему за ним выражению.
while (а < 100) {
а = а * i + 2;
if (а > 50) break;
i = ++i;
}
В этом примере мы прерываем выполнение цикла, если значение переменной а превысит 50.
Собственно, мы уже знакомы с действием break. Оно использовалось в выражении выбора, где вело себя точно так же.
Действие continue позволяет перезапустить цикл, т. е. оставить невыполненными все последующие выражения, входящие в тело цикла, и запустить выполнение цикла с самого его начала: проверка условия, приращение счетчика и выполнение тела и т. д.
while (а < 100) {
i = ++i;
if (i > 9 && i < 11) continue;
a = a * i + 2;
}
Здесь мы пропускаем выражение вычисления а для всех значений i от 10 до 20.
Функции
Функция — это особым образом написанный и оформленный фрагмент кода ActionScript, который можно вызвать из любого места любого сценария. Фактически функция — это повторно используемый участок кода, который, будучи написанным один раз, может быть вызван где угодно, кем угодно и сколько угодно раз. Так что, если какой-то фрагмент кода встречается в нескольких местах вашего сценария или сценариев, лучше всего оформить его в виде функции.
Собственно код, ради которого и была создана функция, называется телом функции. Каждая функция, кроме того, должна иметь уникальное имя, по которому к ней можно будет обратиться. Функция также может принимать один или несколько параметров и возвращать результат, который можно использовать в выражениях.
Объявление функций
Прежде чем функция будет использована где-то в сценарии, ее нужно объявить. Объявление функции выполняется с помощью ключевого слова