В этом руководстве вы узнаете о цикле while и do… while с помощью примеров.
В программировании циклы используются для повторения блока кода. Например, если вы хотите показать сообщение 100 раз, вы можете использовать цикл. Это просто простой пример; вы можете добиться гораздо большего с помощью петель.
В предыдущем руководстве вы узнали о цикле for в JavaScript. Здесь вы собираетесь узнать while
и do… while
петли.
JavaScript во время цикла
Синтаксис while
цикла:
while (condition) ( // body of loop )
Вот,
while
Петля оценивает состояние внутри скобок()
.- Если условие оценивается как значение
true
, выполняется код внутриwhile
цикла. - Состояние оценивается снова.
- Этот процесс продолжается до тех пор, пока состояние не изменится
false
. - Когда условие оценивается
false
, цикл останавливается.
Чтобы узнать больше об условиях , посетите JavaScript-операторы сравнения и логические операторы.
Блок-схема цикла while

Пример 1: отображение чисел от 1 до 5
// program to display numbers from 1 to 5 // initialize the variable let i = 1, n = 5; // while loop from i = 1 to 5 while (i <= n) ( console.log(i); i += 1; )
Вывод
1 2 3 4 5
Вот как работает эта программа.
Итерация | Переменная | Условие: i <= n | Действие |
---|---|---|---|
1-й | i = 1 n = 5 | true | 1 напечатан. i увеличивается до 2 . |
2-й | i = 2 n = 5 | true | 2 напечатано. i увеличивается до 3 . |
3-й | i = 3 n = 5 | true | 3 напечатано. i увеличивается до 4 . |
4-й | i = 4 n = 5 | true | 4 напечатано. i увеличивается до 5 . |
5-й | i = 5 n = 5 | true | 5 напечатано. i увеличивается до 6 . |
Шестой | i = 6 n = 5 | false | Цикл завершен |
Пример 2: Только сумма положительных чисел
// program to find the sum of positive numbers // if the user enters a negative numbers, the loop ends // the negative number entered is not added to sum let sum = 0; // take input from the user let number = parseInt(prompt('Enter a number: ')); while(number>= 0) ( // add all positive numbers sum += number; // take input again if the number is positive number = parseInt(prompt('Enter a number: ')); ) // display the sum console.log(`The sum is $(sum).`);
Вывод
Введите число: 2 Введите число: 5 Введите число: 7 Введите число: 0 Введите число: -3 Сумма равна 14.
В приведенной выше программе пользователю предлагается ввести число.
Здесь parseInt()
используется, потому что prompt()
принимает ввод от пользователя в виде строки. И когда добавляются числовые строки, он ведет себя как строка. Например, '2' + '3' = '23'
. Так parseInt()
преобразует числовую строку в число.
while
Цикл продолжается до тех пор , пока пользователь не введет отрицательное число. Во время каждой итерации к sum
переменной добавляется число, введенное пользователем .
Когда пользователь вводит отрицательное число, цикл завершается. Наконец, отображается общая сумма.
JavaScript do… while Loop
Синтаксис do… while
цикла:
do ( // body of loop ) while(condition)
Вот,
- Сначала выполняется тело цикла. Тогда условие оценивается.
- Если условие оценивается как
true
, тело цикла внутриdo
оператора выполняется снова. - Состояние оценивается еще раз.
- Если условие оценивается как
true
, тело цикла внутриdo
оператора выполняется снова. - Этот процесс продолжается до тех пор, пока условие не станет равным
false
. Затем цикл останавливается.
Примечание : do… while
петля аналогична while
петле. Единственное отличие состоит в том, что в do… while
цикле тело цикла выполняется хотя бы один раз.
Блок-схема цикла do… while

Посмотрим, как работает do… while
цикл.
Пример 3: отображение чисел от 1 до 5
// program to display numbers let i = 1; const n = 5; // do… while loop from 1 to 5 do ( console.log(i); i++; ) while(i <= n);
Вывод
1 2 3 4 5
Вот как работает эта программа.
Итерация | Переменная | Условие: i <= n | Действие |
---|---|---|---|
i = 1 n = 5 | не проверено | 1 напечатан. i увеличивается до 2 . | |
1-й | i = 2 n = 5 | true | 2 напечатано. i увеличивается до 3 . |
2-й | i = 3 n = 5 | true | 3 напечатано. i увеличивается до 4 . |
3-й | i = 4 n = 5 | true | 4 напечатано. i увеличивается до 5 . |
4-й | i = 5 n = 5 | true | 6 напечатано. i увеличивается до 6 . |
5-й | i = 6 n = 5 | false | Цикл завершен |
Пример 4: сумма положительных чисел
// to find the sum of positive numbers // if the user enters negative number, the loop terminates // negative number is not added to sum let sum = 0; let number = 0; do ( sum += number; number = parseInt(prompt('Enter a number: ')); ) while(number>= 0) console.log(`The sum is $(sum).`);
Выход 1
Введите число: 2 Введите число: 4 Введите число: -500 Сумма равна 6.
Here, the do… while
loop continues until the user enters a negative number. When the number is negative, the loop terminates; the negative number is not added to the sum variable.
Output 2
Enter a number: -80 The sum is 0.
The body of the do… while
loop runs only once if the user enters a negative number.
Infinite while Loop
If the condition of a loop is always true
, the loop runs for infinite times (until the memory is full). For example,
// infinite while loop while(true)( // body of loop )
Here is an example of an infinite do… while
loop.
// infinite do… while loop const count = 1; do ( // body of loop ) while(count == 1)
In the above programs, the condition is always true
. Hence, the loop body will run for infinite times.
for Vs while Loop
A for
loop is usually used when the number of iterations is known. For example,
// this loop is iterated 5 times for (let i = 1; i <=5; ++i) ( // body of loop )
Циклы And while
и do… while
обычно используются, когда количество итераций неизвестно. Например,
while (condition) ( // body of loop )