Циклы. Цикл for() онлайн урок.


Как и в других языках программирования, в JavaScript реализованы циклы.
Несколько слов об их основном предназначении. Предположим у нас есть блок кода, который точно необходимо повторить некоторое количество раз подряд:

var mew = 'Mew!';
console.log('Cat says:');

// here is repeating code
console.log(mew);
console.log(mew);
console.log(mew);
console.log(mew);


В данном случае мы повторяем запись в консоль строки "Mew!" ровно 4 раза. Мы видим, что если нам придется повторять какой-нибудь более сложный блок кода, то это будет весьма громоздко. Таким образом необходим механизм, который повторит некоторый блок кода требуемое количество раз. Как раз это и делает цикл.

В JS используются циклы, аналогичные другим популярным языкам программирования (C/C++, PHP, JAVA):

  • for (<options>) - повторяет некоторый блок кода в зависимости от заданных параметров <options>

  • while (booleanExpression) - повторяет некоторый блок кода в зависимости от логического значения booleanExpression

  • do-while (booleanExpression) - аналог предыдущего типа цикла, но со своей особенностью


После каждой из этих конструкций необходимо указать сгруппированный при помощи фигурных скобок { } блок кода, который будет повторяться. Повторения в самом цикле называются итерациями. Блок кода, который повторяется называют телом цикла.

В этом уроке рассмотрим цикл for(). В качестве значения опций <options> необходимо указать три "параметра" S1; C1; S2, которые разделены точкой с запятой:

for (S1; C1; S2) {
      code-to-repeat;
}


Параметр S1 - это инструкция, которая будет выполнена перед первой итерацией. Фактически это инициализация цикла.

Параметр C1 - это логическое выражение или значение, которое будет проверятся перед каждой итерацией цикла. Если значение этого выражение true, то выполняется последующая итерация. В противном случае - цикл прекращается. Фактически - это условие продолжения работы цикла. Заметим, что для первой итерации эта проверка будет выполнена после выполнения инструкции S1.

Параметр S2 - это инструкция, которая выполняется после каждой итерации.

Схематически это можно представить на следующем изображении:



Теперь вернемся к нашему примеру и перепишем его, используя цикл for:



Тут в качестве инструкции S1 выступает определения и инициализация переменной i. В качестве условия продолжения работы цикла выступает выражение i <= 4. В качестве инструкции S2, которая выполняется после каждой итерации, выступает операция инкремента переменной i - увеличение ее значения на 1. Таким образом, получим повторение записи в консоль значения переменной mew ровно 4 раза. Переменная i в таких циклах называется счетчиком.

Рассмотрим еще один пример применения этого цикла - перебор значений массива.

var arr = [1, 3, 4, 5, 7, 4, 4, 3];

for (i = 0; i < arr.length; i++) {
console.log( arr[i] );
}


В данном случае мы динамически создали переменную i, которая является счетчиком итераций, а в условии использовали свойство объекта массива, которое содержит количество его элементов.

Проверьте свои знания
Вычислить значение факториала n! = 1*2*3*...*n. Значение n ввести при помощи функции prompt()