Так же как инструкция if является базовой управляющей инструкцией, позво_ ляющей интерпретатору JavaScript принимать решения, инструкция while – это
1 Это существенное отличие инструкции switch в JavaScript от инструкции switch в C, C++ и Java. В этих языках выражения case должны быть константами, вы_ числяемыми на этапе компиляции, иметь тип integer или другой перечислимый тип, причем один и тот же тип для всех констант.
2 Это значит, что инструкция switch в JavaScript менее эффективна, чем в C, C+ и Java. Выражения case в этих языках представляют собой константы, вычисляе_ мые на этапе компиляции, а не во время выполнения, как в JavaScript. Кроме то_ го, поскольку выражения case являются в C, C++ и Java перечислимыми, ин_ струкция switch часто может быть реализована с использованием высокоэффек_ тивной таблицы переходов.
106 Глава 6. Инструкции
базовая инструкция, позволяющая JavaScript выполнять повторяющиеся дей_ ствия. Она имеет следующий синтаксис:
while (выражение) инструкция
Инструкция while начинает работу с вычисления выражения. Если оно равно false, интерпретатор JavaScript переходит к следующей инструкции програм_ мы, а если true, то исполняется инструкция, образующая тело цикла, и выраже_ ние вычисляется снова. И опять, если значение равно false, интерпретатор Java_ Script переходит к следующей инструкции программы, в противном случае он исполняет инструкцию снова. Цикл продолжается, пока выражение не станет равно false, тогда инструкция while завершит работу и JavaScript пойдет даль_ ше. С помощью синтаксиса while(true) можно записать бесконечный цикл.
Обычно не требуется, чтобы интерпретатор JavaScript снова и снова выполнял одну и ту же операцию. Почти в каждом цикле с каждой итерацией цикла одна или несколько переменных изменяют свои значения. Поскольку переменная ме_ няется, действия, которые выполняет инструкция, при каждом проходе тела цик_ ла могут отличаться. Кроме того, если изменяемая переменная (или перемен_ ные) присутствует в выражении, значение выражения может меняться при каж_ дом проходе цикла. Это важно, т. к. в противном случае выражение, значение которого было равно true, никогда не изменится и цикл никогда не завершится! Пример цикла while:
var count = 0;
while (count < 10) { document.write(count + "<br>"); count++;
}
Как видите, в начале примера переменной count присваивается значение 0, а за_ тем ее значение увеличивается каждый раз, когда выполняется тело цикла. По_ сле того как цикл будет выполнен 10 раз, выражение становится равным false (т. е. переменная count уже не меньше 10), инструкция while завершается и Java_ Script может перейти к следующей инструкции программы. Большинство цик_ лов имеют переменные_счетчики, аналогичные count. Чаще всего в качестве счетчиков цикла выступают переменные с именами i, j и k, хотя для того чтобы сделать код более понятным, следует давать счетчикам более наглядные имена.