Циклы в JavaScript

Решение повторяющихся задач с использованием циклов

При написании программы встречается необходимость повторять одну и ту же серию операций.

Например при отправке заполненной формы на сайте необходимо проверить заполнены ли все поля, т.е. не являются ли они пустыми. Конечно если таких полей в форме немного то можно проверить каждое поле отдельно, но если таких полей 10 и более, то в этом случае код становится заметно больше. Но по сути происходит выполнение одного и того же действия, а именно каждое поле проверятся на предмет того заполнено оно или нет.

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

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

Цикл While

Цикл While позволяет выполнять определенные последовательность действий до тех пор, пока не будет выполнено заданное условие.

Данный цикл используется чаще всего в случае когда не известно точно, какое количество раз необходимо повторить те или иные операции.

while (условие1) {
      команды  //данные команды будут выполняться, пока условие1 не будет ложно
}

Цикл будет выполняться пока условие будет истинно, либо пока в теле циклы не встретится команда break. Следует запомнить что данный цикл сначала проверяет условие а затем выполняет команды цикла. То есть данный цикл может не выполнить ни разу написанные в нем команды.

var1 = 2;
if (var1 < 100) {
    var1 var1 + 1; 
    if (var1 == 45) {
             alert (var1);
             break;
    }
}

Данный цикл будет выполняться пока переменная var1 имеет значение меньше 100. В теле цикла мы задали код который увеличивает переменную на 1 и если переменная равна 45 то выводим ее используя команду Alert, и закончит выполнение цикла. Выполнение цикла закончится  когда переменная var1 станет равна 45, так как указана команда break.

Цикл For

Цикл For в JavaScript позволяет выполнить набор команд точно указанное количество раз.

for (переменная; условие; шаг) {
   команды для выполнения
}

Переменная

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

Начальное значение переменной может быть любым, но в большинстве случаев используется значение равное нулю. Если задавать начальное значение переменной счетчика цикла равное нулю, то это существенно облегчает работу с массивами данных, так как индексация массивов начинается с 0.

for (var i =0; условие; шаг) {
   команды для выполнения
}

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

var j=10;
for (j; условие; шаг) {
   команды для выполнения
}

В данном случае при начале цикла переменная j уже будет иметь значение равное 10.

Еще одно важное про переменную счетчика. Данная переменная объявленная в качестве аргумента для цикла не может изменяться в теле цикла.

Условие

После переменной счетчика для данного цикла имеется аргумент «условие». Этот аргумент позволяет установить при каком условии прекратится выполнение тела цикла. В большинстве случаев используется условие равенства или сравнения. Рассмотрим подробнее:

for (var i=0; i<10; шаг) {
   команды для выполнения
}

В приведенном коде тело цикла (команды) будут выполняться пока переменная i будет меньше 10. Как только переменная станет равна 10 или станет больше, то выполнение команд цикла прекратится.  Но если мы не укажем третий аргумент то цикл будет выполняться бесконечное количество раз. Для того чтобы этого не случилось, нам необходимо установить третий аргумент для цикла.

Шаг

Третий аргумент цикла For — «шаг».  Этот аргумент дает нам возможность установить как будет меняться переменная счетчика после каждого прохождения цикла.

for (var i=0; i<10; i++) {
   команды для выполнения
}

В данном примере при прохождении цикла наша переменная счетчика i будет увеличиваться на 1. Шаг можно указывать не только таким образом. Шаг определяется программистом при написании программы. От указания значения шага зависит сколько раз выполнится наш цикл, в соответствии с заданным условием. В нашем примере цикл выполнится ровно 10 раз, так как переменная i имеет значение 0. Если мы присвоим переменной i значение 1, то цикл в этом случае выполнится всего 9 раз.

Цикл Do/While

Данный цикл является разновидностью цикла while. Данный цикл позволяет повторять выполнение набора команд, пока не будет выполнено определенное условие. Главное отличие цикла do while от цикла while состоит в том, что команды из данного цикла будут выполнены минимум один раз. Это отличие исходит от того, что данный цикл сначала выполняет содержащиеся в нем команды, а затем проверяет истинность условия. Данный цикл называется циклом с постусловием, т.е. условие проверятся после выполнения команд.

do {
    Команды для выполнения
} while (условие)