--- title: do...while slug: Web/JavaScript/Reference/Statements/do...while translation_of: Web/JavaScript/Reference/Statements/do...while ---
{{jsSidebar("Statements")}}

Выражение do...while создаёт цикл, который выполняет указанное выражение до тех пор, пока условие не станет ложным. Условие проверяется после выполнения выражения, то есть выражение выполнится как минимум один раз.

{{EmbedInteractiveExample("pages/js/statement-dowhile.html")}}

Синтаксис

do
   выражение
while (условие);
выражение
Выражение, которое выполняется как минимум один раз и выполняется на каждом шаге цикла, пока условие истинно. Выражение может содержать несколько строк, для этого необходимо сгруппировать код в {{jsxref("Statements/block", "блок")}} ({ ... }).
условие
Выражение, которое вычисляется после каждого шага цикла. Если условие истинно, то выражение выполняется ещё раз. Когда условие ложно, выполняется выражение, следующее после do...while.

Примеры

Использование do...while

В примере, цикл do...while выполняется до тех пор, пока i не перестанет быть меньше 5.

HTML

<div id="example"></div>

JavaScript

var result = '';
var i = 0;
do {
   i += 1;
   result += i + ' ';
} while (i > 0 && i < 5); // Немотря на то, что i == 0, цикл всё равно продолжится, так как начинается без теста
document.getElementById('example').innerHTML = result;

Результат

{{ EmbedLiveSample('Примеры') }}

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

Спецификация Статус Комментарий
{{SpecName('ES3')}} {{Spec2('ES3')}} Изначальное определение. Реализовано в JavaScript 1.2
{{SpecName('ES5.1', '#sec-12.6.1', 'do-while statement')}} {{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-do-while-statement', 'do-while statement')}} {{Spec2('ES6')}} Использование ; теперь необязательно
{{SpecName('ESDraft', '#sec-do-while-statement', 'do-while statement')}} {{Spec2('ESDraft')}}

Поддержка в браузерах

{{Compat("javascript.statements.do_while")}}

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