Цикл do/while во многом похож на цикл while, за исключением того, что выражение цикла проверяется в конце, а не в начале цикла. Это значит, что тело цикла исполнится хотя бы один раз. Синтаксис его таков:
do
Инструкция
while (выражение);
Цикл do/while используется реже, чем родственный ему цикл while. Дело в том, что на практике ситуация, когда требуется хотя бы однократное исполнение цикла, несколько необычна. Например:
function printArray(a) {
if (a.length == 0)
document.write("Пустой массив");
else {
var i = 0;
do {
document.write(a[i] + "<br>");
} while (++i < a.length);
}
}
Между циклом do/while и обычным циклом while есть два отличия. Во-первых, цикл do требует как ключевого слова do (для отметки начала цикла), так и ключевого слова while (для отметки конца цикла и указания условия). Во-вторых, в отличие от цикла while, цикл do завершается точкой с запятой. Причина в том, что цикл do завершается условием цикла, а не просто фигурной скобкой, отмечающей конец тела цикла.
Пример:
/* Вычисляем х в степени у */
var z = х;
i = 2;
do{ z=z*x;
i++;
}
while (i <= y)
Рассмотрим пример вычисления факториала числа. Факториал числа n в математике обозначают как n!. Для n, равного 0 и 1, n! равен 1. В остальных случаях n! равен 2*3*4* ... *n.
/* Вычисляем n! */
var z = 1;
if (n >1) { i = 2;
do {
z=z*i; // z хранит результат n!
i++;
}
while ( i <= n )
}