- •1. Введение
- •2. Динамическое заполнение страницы
- •3. Циклы
- •3.1. Цикл do .. While
- •3.2. Цикл while
- •3.3. Примеры
- •3.4. Конструкция for
- •Общий синтаксис и принцип работы конструкции for:
- •Пример использования:
- •Комментарий к примеру:
- •Некоторые особенности синтаксиса for:
- •Инициализация управляющей переменной.
- •Изменение управляющей переменной.
- •Условие.
- •3.5. Ключевые слова break и continue. Оператор break
- •Комментарии к примеру:
- •Оператор continue
- •Комментарии к примеру.
- •3.6. Примеры
- •3.7. Вложенная конструкция циклов
- •Еще один пример:
- •Комментарий к коду:
- •4. Самостоятельное задание:
3.2. Цикл while
Цикл while похож на цикл do .. while. В цикле do .. while в любом случае сначала выполняется действие и только потом идет проверка условия. В цикле while разница состоит в том, что проверка условия производится сразу же при входе в цикл, и, лишь затем, если условие истинно - выполняется действие. Если условие истинно, выполнение действия продолжается, а если нет, то выполнение передается следующему за while оператору. Другими словами, в do .. while действие хотя бы один раз выполняется, а в while могут ни разу и не выполниться. Давайте рассмотрим это на схеме:
В общем, здесь все понятно без слов, если вы разобрались с предыдущей конструкцией цикла.
Теперь давайте рассмотрим синтаксис цикла while:
while(условие) { действие; }
Видите, что синтаксис изменился. Но суть осталась та же. Нужно написать условие и действие. Нужно опять таки помнить, что выражение в условии когда-то должно поменяться на false, иначе цикл будет бесконечным. Соответственно переменную, которая будет стоять в условии, мы будем менять в теле цикла.
Давайте предыдущий пример переведем в цикл while:
<html> <head> <script type="text/javascript"> //Покажем сколько у нас тарелок var kol_tarelok = 3; while (kol_tarelok > 0) { //Сделаем операцию document.write("Взять тарелку из раковины.<br>"); document.write("Намылить тарелку средством для мытья посуды.<br>"); document.write("Потереть тарелку мочалкой.<br>"); document.write("Вытереть тарелку.<br>"); document.write("Поставить тарелку на полку.<br><br>"); //После вымытой тарелки уменьшим количество грязных на одну kol_tarelok--; } </script> </head>
Думаю, комментарии излишни.
Примечание:
Так же как и в конструкции if в циклах можно опускать фигурные скобки, если у вас всего одна операция, но этого мы не рекомендуем делать, потому что иногда из-за этого могут возникнуть ошибки, которые трудно выявить. Исходя из этого НИКОГДА в конструкции while не ставьте точку с запятой после круглых скобок в while():
<html> <head> <script type="text/javascript"> var count= 3; while (count > 0); { document.write("Операция.<br>"); count --; } </script> </head>
Кто не понял, то только что мы создали вечный цикл из-за того, что точка с запятой была воспринята, как одна пустая операция, которая выполняется в цикле. А фигурные скобки, никак уже не относятся к циклу.
Обычно одно действие цикла называется «итерацией», а переменная-счетчик, за счет которой выполняется цикл – итератором. В большинстве циклов необходим итератор. Это необходимо в том случае, если у нас известное количество ходов. А если, к примеру, мы хотим выполнять наш цикл одну секунду, то мы не знаем сколько раз за секунду, может выполниться цикл, но поставить такое условие мы можем: пока не прошла одна секунда.
В данном примере мы уменьшали значение нашего итератора, но в большинстве случаев этого лучше не делать, потому что из-за уменьшения мы можем перелезть в интервал отрицательных чисел. Лучше делать следующее:
<html> <head> <script type="text/javascript"> var count = 0; while (count < 3); { document.write("Операция.<br>"); count ++; } </script> </head>
Мы поменяли все местами: теперь счетчик увеличивается от нуля до трех, а цикл работает пока счетчик меньше трех. И выполниться он три раза.