Циклы. Циклы while() и do-while() онлайн урок.


Рассмотрим цикл while(). Этот цикл часто называют циклом по условию. В скобках после слова while указывают некоторое логическое выражение или значение. Цикл начнется если значение этого выражения равно true и будет работать, пока это условие не обратится в false. Общий синтаксис этого цикла выглядит так:

while (boolExpression) {
      code-to-repeat;
}

Рассмотрим простой пример:

var i = 0;
while (i < 10) {
i++;
}


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

var i = 0;

// everlasting loop - don't do that
while (i < 10) {
  console.log(i);
}



В данном примере значение i не изменяется в теле цикла, потому указанное условие продолжения работы цикла всегда будет выполнено.Отметим, что любой цикл, написанный при помощи цикла for() можно переписать при помощи while() и наоборот. При помощи цикла while(), пример из предыдущего урока описывается следующим образом:



Цикл do-while() - это аналог цикла while. Основное отличие этого типа цикла от while состоит в том, что он выполнится хотя бы 1 раз, даже если условие продолжения работы цикла равно false. Рассмотрим общий синтаксис этого цикла:

do {
      code-to-repeat;
} while (boolExpression)


Как видно из синтаксиса, условие продолжения работы цикла написано в конце. Это означает, что блок кода после do будет выполнен прежде, чем условие будет проверено. Например, в результате цикла

do {
  console.log('test');
} while (false);


в консоль будет выведена строка 'test'. После этого будет проверено условие, которое всегда равно false и цикл завершит работу. Тем не менее первая итерация будет исполнена.

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

Проверьте свои знания
Выполнить предыдущее задание при помощи циклов while / do-while