Управление циклами
1. Создание бесконечного цикла
Циклы for и while позволяют достаточно детально управлять выполнением операций. В некоторых случаях, при неосторожности и невнимательности, это порождает сложные проблемы.
Рассмотрим пример бесконечного цикла:
<script language="JavaScript">
var i=1
do{
document.write('i = ',i,'<br>')
i=i+3.5
}
while(i>=1)
</script>
В данном случае условие цикла while(i>=1) будет всегда истинным. Выполнение этого цикла может прервать только пользователь или при возникновении ошибки.
Бесконечные циклы прерываются пользователем только при закрытии броузера. Некоторые бесконечные циклы не позволяют закрывать броузер или вызвать ошибку. Их тяжело обнаружить, поскольку JavaScript при их возникновении не выводит на экран сообщения об ошибке. Поэтому при создании любого цикла в сценарии будьте внимательны и проверяйте его тщательнее, не позволяя стать бесконечным. Иногда бесконечный цикл создают умышленно. Это вызвано необходимостью постоянного выполнения программы до прерывания ее пользователем. Процедура выхода из бесконечного цикла предусматривает использование оператора break, описанного в следующем разделе.
2. Прерывание цикла
Существует надежный способ выхода из цикла: в тело цикла после операторов действия необходимо добавить оператор break. Оператор break используют в любом типе циклов, как в бесконечном, так и в конечном. Это позволяет создавать процедуру выхода из программы в случае возникновения ошибок или нахождения необходимых данных.
Рассмотрим пример: программа запускается по паролю - звезда. Ввод пароля осуществляется по запросу:
Цикл рассчитан на шесть повторов, то есть в случае неверного ввода пароля запрос сценария повторится еще пять раз. При каждом неверном вводе пароля выдается сообщение:
После шестого неверного ввода пароля выдается предупреждающее сообщение:
Если же пользователем вводится верный пароль, то цикл прерывается и выдается сообщение:
Программа на языке JavaScript выглядит следующим образом:
<script language="JavaScript">
var i=1
do{
p=prompt('Для запуска программы введите пароль','')
if (p!='звезда') alert('Пароль введен не верно')
if (p=='звезда') break
i++
}
while(i<=6)
if (p=='звезда') alert('Идет подготовка к запуску программы')
if (p!='звезда') alert('ВНИМАНИЕ! \n ВКЛЮЧЕНА \n СИСТЕМА \n БЕЗОПАСНОСТИ')
</script>