Оператор цикла while javascript

Операторы цикла For и While. Операторы Break и Continue

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

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

Часто операторы цикла используются при работе с массивами.

Так, вместо того чтобы писать:

 text += cars[0] + "
"; text += cars[1] + "
"; text += cars[2] + "
"; text += cars[3] + "
"; text += cars[4] + "
"; text += cars[5] + "
";

Различные виды операторов цикла

JavaScript поддерживает различные виды циклов:

  • for – в цикле выполняет блок кода заданное число раз
  • for/in – цикл по свойствам объекта
  • while – выполняет блок кода до тех пор, пока заданное условие не будет равно true
  • do/while – также выполняет блок кода до тех пор, пока заданное условие не будет равно true

Оператор цикла for

Оператор for это наиболее часто используемый инструмент для создания цикла.

Оператор цикла for имеет следующий синтаксис:

for (выражение 1; выражение 2; выражение 3) выполняемый блок кода
>

Выражение 1 выполняется до начала цикла (до начала выполнения блока кода).
Выражение 2 определяет условие продолжения цикла.
Выражение 3 выполняется после каждого прохода цикла.

Код этого примера можно прочитать следующим образом:

  • выражение 1 до начала цикла инициализирует переменную-счетчик (var i = 0).
  • выражение 2 определяет условие продолжения цикла (i должно быть меньше 5).
  • выражение 3 после каждого прохода цикла увеличивает на 1 счетчик (i++).

Выражение 1
Обычно, выражение 1 используется для инициализации переменной, которая будет использоваться внутри цикла, как правило в качестве счетчика (i = 0).

При этом выражение 1 является необязательным.

Можно в выражении 1 инициализировать несколько переменных (разделяя их запятыми):

 for (i = 0, len = cars.length, text = ""; i < len; i++) < text += cars[i] + "
"; >

Можно пропустить выражение 1 (и определить все необходимые значения до самого цикла):

 var i = 2; var len = cars.length; var text = ""; for (; i < len; i++) < text += cars[i] + "
"; >

Выражение 2
Часто выражение 2 используется для вычисления состояния переменной-счетчика.

При этом выражение 2 также является необязательным.

Если выражение 2 возвращает true, то начнется новый цикл. Если оно вернет false, то цикл закончится.

Внимание! Если выражение 2 не определяется, то внутри цикла должен быть задан оператор break. Иначе цикл никогда не закончится, что приведет к краху браузера.

Выражение 3
Обычно, в выражении 3 изменяется значение переменной-счетчика.

При этом выражение 3 также является необязательным.

Выражение 3 может выполнять любые действия, например, уменьшение (i—), увеличение (i = i + 15) и т.д.

Выражение 3 может быть пропущено (например, если вычисления с переменной-счетчиком осуществляются внутри цикла):

 var i = 0; var len = cars.length; for (; i < len; ) < text += cars[i] + "
"; i++; >

Оператор цикла for/in

Оператор for/in используется для обхода в цикле свойств объекта:

 var person = ; var text = ""; var x; for (x in person)

Оператор цикла while

Оператор while в цикле выполняет блок кода до тех пор, пока заданное условие равно true.

while (условие) выполняемый блок кода
>

В следующем примере код цикла будет выполняться снова и снова, пока значение переменной (i) будет меньше 10:

Внимание! Если вы забудете увеличить переменную, указанную в условии, то цикл никогда не закончится. Это приведет к краху браузера.

Оператор цикла do/while

Цикл do/while является вариантом цикла while. Этот цикл один раз выполнит блок кода перед проверкой условия завершения и затем будет повторять цикл до тех пор, пока условие не будет равно true.

do выполняемый блок кода
>
while (условие);

В следующем примере используется оператор цикла do/while. Такой цикл будет всегда выполняться по меньшей мере один раз, даже если условие равно false, потому что блок кода выполняется до проверки условия:

Не забывайте изменять значение переменной, используемой в условии завершения цикла, иначе цикл никогда не закончится!

For vs While

Если вы внимательно изучили эту главу, то вы, вероятно, заметили, что оператор цикла while практически идентичен оператору цикла for, у которого не используются выражение 1 и выражение 3.

В следующем примере для вывода названий машин из массива cars используется оператор цикла for:

 var cars = ["BMW", "Volvo", "Saab", "Ford"]; var i = 0; var text = ""; for (;cars[i];) < text += cars[i] + "
"; i++; >

В следующем примере для вывода названий машин из массива cars используется оператор цикла while:

 var cars = ["BMW", "Volvo", "Saab", "Ford"]; var i = 0; var text = ""; while (cars[i]) < text += cars[i] + "
"; i++; >

Операторы break и continue

Оператор break позволяет «выпрыгнуть» из цикла.

Оператор continue позволяет «перепрыгнуть» через один проход цикла.

Оператор break

В предыдущих главах этого учебника вы уже встречались с оператором break. Он использовался для «выпрыгивания» из оператора условия switch.

Также, оператор break может использоваться и для «выпрыгивания» из цикла.

Оператор break прерывает цикл и передает выполнение коду, следующему после оператора цикла (если есть):

 for (i = 0; i < 10; i++) < if (i === 3) < break; >text += "Число: " + i + "
"; >

Оператор continue

Оператор continue прекращает текущий проход цикла, если выполняется заданное условие, и начинает следующую итерацию цикла.

В следующем примере пропускается значение 3:

 for (i = 0; i < 10; i++) < if (i === 3) < continue; >text += "Число: " + i + "
"; >

Метки

Чтобы определить метку в JavaScript, вы должны перед выражением указать имя метки с двоеточием:

метка:
выражение

Операторы break и continue единственные операторы в JavaScript, которые могут «выпрыгивать» из блока кода.

Оператор continue (с ссылкой на метку или без) единственный способ пропустить один проход цикла.

Оператор break (без ссылки на метку) единственный способ выйти из цикла или условного оператора switch.

Оператор break с ссылкой на метку позволяет выйти из любого блока кода и перейти в конкретное место программы:

 var cars = ["BMW", "Volvo", "Saab", "Ford"]; list: < text += cars[0] + "
"; text += cars[1] + "
"; text += cars[2] + "
"; break list; text += cars[3] + "
"; text += cars[4] + "
"; text += cars[5] + "
"; >

Стоит напомнить, что блок кода — это код, расположенный внутри фигурных скобок < и >.

Источник

while

Оператор while создаёт цикл, выполняющий заданную инструкцию, пока истинно проверяемое условие. Логическое значение условия вычисляется перед исполнением тела цикла.

Синтаксис

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

Инструкция, которая исполняется каждый раз, пока истинно условие. Чтобы выполнить несколько инструкций в цикле, используйте блочный оператор ( < . >) для их группировки.

Примеры

Следующий цикл while исполняется, пока n не превышает трёх.

var n = 0; var x = 0; while (n  3)  n++; x += n; > 

На каждой итерации цикла n увеличивается на единицу и прибавляется к x . Таким образом, x и n принимают следующие значения:

  • После первого прохода: n = 1 и x = 1
  • после второго прохода: n = 2 и x = 3
  • После третьего прохода: n = 3 и x = 6

Спецификации

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также

Found a content problem with this page?

This page was last modified on 24 окт. 2022 г. by MDN contributors.

Your blueprint for a better internet.

MDN

Support

Our communities

Developers

Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.

Источник

Циклы while и do. while

while — это оператор в JavaScript, позволяющий воспроизводить цикл, который выполняет задачу столько раз, пока истинно заданное условие. while чаще используется, когда количество итераций заранее неизвестно.

Синтаксис while

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

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

Пример №1

Цикл выводит модальное окно со значением n до тех пор пока n не будет меньше 4

 let n = 0; while (n < 4) < alert("n n num num n n 2">Цикл do. while 

Единственное отличие цикла do…while от while это то, что проверка условия происходит после выполнения тела цикла. Таким образом инструкция будет выполнена, как минимум один раз.

Синтаксис do. while

 do < // инструкция (тело цикла) >while (условие); 

Инструкция выполнится, как минимум один раз и будет повторятся до тех пор пока условие истинно. Если тело цикла состоит из одной строки фигурные скобки можно не ставить.

Условие проверяется после выполнения инструкции, если истинно тогда запускается еще одна итерация, в противном случае выполняется код следующий за циклом do…while

Пример №6

 let result = ''; let n = 0; do < n = n + 1; result = result + n; console.log("result Напишите ваше имя"); >while (!yourName); console.log(yourName); 

Программа создает модальное окно, в котором просит написать имя и далее выводит его в console.

Прерывание цикла - break

Выход из while при условии false не единственный способ прекратить цикл. С помощью директивы break мы можем завершить замкнутый цикл в любой момент.

Пример №8

 let n = 0; while (n < 12) < if (n === 4) < break; >n = n + 1; > alert(n); 

Без if с break цикл работал бы до тех пор пока условие было бы истинным, в нашем случае while прервался когда n стал равен 4.

while в сочетании с инструкцией break это отличное решение, когда условие при котором нужно завершить бесконечный цикл находится не в начале или конце, а где-то посередине или может находится в нескольких местах.

Завершение текущей итерации - continue

Если необходимо прервать не весь цикл, а только одну итерацию при определенных условиях - используют дерективу continue . В while она переносит поток выполнения к условию.

Пример №9

 a = 0; b = 0; while (a < 10) < a++; if (a === 5) < continue; >b += a; console.log("b 5">Метки для continue и break 

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

Пример №10

 let a = 0; let b = 0; cancelLoops: while (true) < console.log('Outer loops: ' + a); a += 1; b = 1; while (true) < console.log('Inner loops: ' + b); b += 1; if (b === 8 && a === 5) < break cancelLoops; >else if (b === 8) < break; >> > 

break cancelLoops - выход из внешнего цикла

В этом примере при a = 5 и b = 8 мы переходим к завершению внешнего цикла while. Если a не равно 5 происходит выход из внутреннего цикла.

Пример №11

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

Циклы while и do…while могут быть прерваны если проверяемое условие false и задействована директива break .

Итерация может быть прервана с помощью директивы continue .

continue и break поддерживают метки, которые дают возможность выйти за пределы цикла.

Skypro - научим с нуля

Источник

Читайте также:  Термин расшифровка перевод пояснение html
Оцените статью