Руководства, Инструкции, Бланки

Инструкция While img-1

Инструкция While

Рейтинг: 4.7/5.0 (1829 проголосовавших)

Категория: Инструкции

Описание

Инструкция WHILE

Инструкция WHILE

Инструкция (цикл) while используется в том случае, если некоторую последовательность действий (инструкций программы) надо выполнить несколько раз, причем необходимое число повторений во время разработки программы неизвестно и может быть определено только во время работы программы.

Типичными примерами использования цикла while являются вычисления с заданной точностью, поиск в массиве или в файле.

В общем виде инструкция while записывается следующим образом:

while условие do begin

// здесь инструкции, которые надо выполнить несколько раз

end где условие - выражение логического типа, определяющее условие выполнения инструкций цикла.

Инструкция while выполняется следующим образом:

1. Сначала вычисляется значение выражения условие.

2. Если значение выражения условие равно False (условие не выполняется), то на этом выполнение инструкции while завершается.

3. Если значение выражения условие равно True (условие выполняется), то выполняются расположенные между begin и end инструкции тела цикла. После этого снова проверяется выполнение условия. Если условие выполняется, то инструкции цикла выполняются еще раз. И так до тех пор, пока условие не станет ложным (False).

Алгоритм, соответствующий инструкции while, представлен на рис. 2.14.

Для того чтобы инструкции цикла while, находящиеся между begin и end, были выполнены хотя бы один раз, необходимо, чтобы перед выполнением инструкции while значение выражения условие было истинно.

Для того чтобы цикл завершился, нужно, чтобы последовательность инструкций между begin и end влияла на значение выражения условие (изменяла значения переменных, входящих в выражение условие).

Рассмотрим программу, которая вычисляет значение числа тс с точностью, задаваемой пользователем во время работы программы. В основе алгоритма вычисления лежит тот факт, что сумма ряда 1-1/3+1/5-1/7+1/9+. приближается к значению я/4 при достаточно большом количестве членов ряда.

Каждый член ряда с номером п вычисляется по формуле: 1/(2 хп-1) и умножается на минус один, если п четное (определить, является ли п четным, можно проверкой остатка от деления п на 2). Вычисление заканчивается

Рис. 2.14. Алгоритм инструкции while тогда, когда значение очередного члена ряда становится меньше, чем заданная точность вычисления.

Вид диалогового окна программы во время ее работы приведен на рис. 2.15. Пользователь вводит точность вычисления в поле ввода (Editl). После щелчка командной кнопки Вычислить (Buttonl) программа вычисляет значение числа гс и выводит результат в поле метки (Labeil).

Рис. 2.15. Диалоговое окно программы Вычисление ПИ

Текст программы приведен в листинге 2.5. Как и в предыдущих примерах, основную работу выполняет процедура обработки события onclick.

I Листинг 2.5. Вычисление числа 71

unit pi_; interface

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

Editl: TEdit; // точность вычисления

Buttonl: TButton; // кнопка Вычислить

Label2: TLabel; // поле вывода результата

procedure ButtonlClick(Sender: TObject); private

procedure TForml.ButtonlClick(Sender: TObject); var

pi:real; // вычисляемое значение ПИ t:real; // точность вычисления n:integer; // номер члена ряда elem:real; // значение члена ряда begin

elem := 1; // чтобы начать цикл while elem >= t do begin

elem := 1 / (2*n - 1) ; if n MOD 2=0

then pi := pi - elem else pi := pi + elem; n := n + 1; end; pi: = pi * 4;

labell.caption:= 'ГШ равно ' + FloatToStr(pi) + #13

+ 'Просуммировано '+IntTostr(n)+' членов ряда.',

Другие статьи

Инструкция (цикл) WHILE - Студопедия

Инструкция (цикл) WHILE

Эта инструкция применяется в том случае, когда нужно выполнить несколько раз определенные действия. Причем заранее не известно, сколько раз этот цикл выполнять – это становится ясно только во время работы программы.

Синтаксис инструкции такой:

while условие do инструкция;

или расширенный вариант:

while условие do begin инструкция 1; инструкция 2;. инструкция n;end;

Здесь условие – переменная или выражение логического типа. Сначала вычисляется условие. Если условие ложно ( False ), то цикл не выполняется и сразу заканчивает работу. Если же условие истинно ( True ), то цикл выполняет инструкции, затем вновь возвращается к условию. Если условие опять возвращает True, цикл выполняется еще раз, и так до тех пор, пока условие не вернет False. Будьте осторожны с этим циклом! Не включайте туда условие, которое никогда не станет False. Компьютер в таком случае "зациклится", то есть зависнет. Обычно для этого внутрь цикла помещают счетчик – переменную целого типа. Только в отличие от цикла for, здесь переменная не увеличивает свое значение автоматически, за этим должен следить сам программист. Пример применения инструкции:

i := 1;while i < 10 do begin ShowMessage('Число равно ' + IntToStr(i)); i := i + 1;end;

В этом простом примере мы целой переменной i присваиваем значение 1. Затем выполняем цикл while до тех пор, пока i не станет больше или равно 10. Если бы мы внутри цикла не указали " i := i + 1; ", то этого никогда бы не произошло, и мы зациклили бы программу! Попробуйте выполнить этот пример в новом проекте, привязав код к обработке нажатия кнопки. В дальнейшей практике Вам не раз придется использовать этот цикл с куда более полезными примерами.

Инструкция while

Инструкция (цикл) while используется в том случае, если некоторую последовательность действий (инструкций программы) надо выполнить несколько раз, причем необходимое число повторений во время разработки программы неизвестно и может быть определено только во время работы программы.

Типичными примерами использования цикла while являются вычисления с заданной точностью, поиск в массиве или в файле.

В общем виде инструкция while записывается следующим образом:

// здесь инструкции, которые надо выполнить несколько раз

где условие — выражение логического типа, определяющее условие выполнения инструкций цикла.

1. Инструкция while выполняется следующим образом:

2. Сначала вычисляется значение выражения условие.

3. Если значение выражения условие равно False (условие не выполняется), то на этом выполнение инструкции while завершается.

4. Если значение выражения условие равно True (условие выполняется), то выполняются расположенные между begin и end инструкции тела цикла. После этого снова проверяется выполнение условия. Если условие выполняется, то инструкции цикла выполняются еще раз. И так до тех пор, пока условие не станет ложным (False).

Алгоритм, соответствующий инструкции while, представлен на рис. 2.14.

Для того чтобы инструкции цикла while, которые находятся между begin и end, были выполнены хотя бы один раз, необходимо, чтобы перед выполнением инструкции while значение выражения условие было истинно.

Рис. 2.14. Алгоритм инструкции while

Для того чтобы цикл завершился, нужно, чтобы последовательность инструкций между begin и end влияла на значение выражения условие (изменяла значения переменных, входящих в выражение условие).

Рассмотрим программу, которая вычисляет значение числа л с точностью, задаваемой пользователем во время работы программы. В основе алгоритма вычисления лежит тот факт, что сумма ряда 1 - 1/3 + 1/5 -1/7 + 1/9 +. приближается к значению л/4 при достаточно большом количестве членов ряда.

Каждый член ряда с номером n вычисляется по формуле: 1/(2*n - 1) и умножается на минус один, если n четное (определить, является ли п четным, можно проверкой остатка от деления п на 2). Вычисление заканчивается тогда, когда значение очередного члена ряда становится меньше, чем заданная точность вычисления.

Вид диалогового окна программы во время ее работы приведен на рис. 2.15. Пользователь вводит точность вычисления в поле ввода (Editi). После щелчка на командной кнопке Вычислить (Buttonl) программа вычисляет значение числа л и выводит результат в поле метки (Labeii).

Текст программы приведен в листинге 2.6. Как и в предыдущих примерах, основную работу выполняет процедура обработки события OnClick.

Рис. 2.15. Диалоговое окно программы Вычисление ПИ

Листинг 2.6. Вычисление числа я

unit pi_; interface

Windows, Messages, SysUtils, Classes, Graphics,

Controls, Forms, Dialogs, StdCtrls;

Edit1: TEdit; // точность вычисления

Button1: TButton; // кнопка Вычислить

Конструкции языка PHP

ресурс для начинающих веб-разработчиков
комплексные веб-услуги по созданию сайтов
Справочный материал по основным языкам программирования и верстки сайтов. Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL. Использование веб-редактора Adobe Dreamweaver в разработке сайтов. Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики. Разработка веб сайтов под "ключ". Разработка отдельных фрагментов сайтов, консультации по вопросам верстки веб-страниц и веб-программирования.

Веб-инструмент

Веб-мастерская

Веб-услуги

Веб-графика

Веб-ресурсы

Посмотрите в Google

Подписка

Хотите быть в курсе событий происходящих на сайте?

Подпишитесь на получение самых последних новостей и статей, с уведомлением по E-mail .

Опрос Конструкции языка PHP. Инструкция if-else. Оператор switch. Цикл с постусловием do-while. Инструкции break и continue

Ну а теперь разберемся с языковыми конструкциями. Некоторые из них нами уже применялись, например, инструкция if. В этом разделе приводится полное описание всех языковых конструкций PHP. Их не так много, и это достоинство PHP. Как показывает практика, чем более лаконичен синтаксис языка, тем проще его использовать в повседневной практике. PHP — отличный пример этому.

О терминологии

Иногда мы будем использовать слово "конструкция", а иногда — "инструкция". В данном случае эти два термина совершенно эквивалентны. Наоборот, термины "оператор" и "операция" несут разную смысловую нагрузку: любая операция есть оператор, но не наоборот. Например, echo — оператор, но не операция, а ++ — операция.

Инструкция if-else

Начнем с самой простой инструкции — условного оператора. Его формат таков:

if(логическое_выражение)
инструкция_1;
else
инструкция_2;

Действие его следующее: если логическое_выражение истинно, то выполняется инструкция_1. а иначе — инструкция_2. Как и в любом другом языке, конструкция else может опускаться, в этом случае при получении должного значения просто ничего не делается.

Если и нструкция_1 или инструкция_2 должны состоять из нескольких команд, то они, как всегда, заключаются в фигурные скобки.

Это не опечатка: elseif слитно, вместо else if. Так тоже можно писать, хотя это и не удобочитаемо.

Конструкция if-else имеет еще один альтернативный синтаксис:

if(логическое_выражение):
команды;
elseif(другое_логическое_выражение):
другие_команды;
else:
иначе_команды;
endif

Обратите внимание на расположение двоеточия (:). Если его пропустить, будет сгенерировано сообщение об ошибке. И еще: как обычно, блоки elseif и else можно опускать.

Использование альтернативного синтаксиса

В предыдущих разделах нами уже неоднократно рассматривался пример вставки HTML-кода в тело сценария. Для этого достаточно было просто закрыть скобку ?>. написать этот код, а затем снова открыть ее при помощи <. и продолжать программу. Чаще всего, однако, нужно бывает делать не вставки HTML внутрь программы, а вставки кода внутрь HTML. Это гораздо проще для дизайнера, который, возможно, в будущем захочет переоформить ваш сценарий, но не сможет разобраться, что ему изменять, а что не трогать. Поэтому целесообразно бывает отделять HTML-код от программы, например, поместить его в отдельный файл, который затем подключается к программе при помощи инструкции include (см. ниже). Сейчас мы не будем подробно останавливаться на этом вопросе, но потом обязательно к нему вернемся. Вот, например, как будет выглядеть наш старый знакомый сценарий, который приветствует пользователя по имени, с использованием альтернативного синтаксиса ifelse :

<? if ( @ $go ). >
Привет. <? = $name ?>.
<? else. >
< for m action= <? = $REQUEST_URI ?> method=post>
Ваше имя: <input type=text name=name><br>
<input type=submit name=go value= "Отослать!" >
<? end if ?>

Оператор switch

Оператор switch (переключатель) удобен, когда требуется значение переменной или выражение сравнить с определенными величинами и выполнить тот или иной фрагмент кода в зависимости от результатов сравнения.

Синтаксис оператора switch :

В приведенном примере сработают 2-й и 3-й варианты. Если мы хотим, чтобы сработал только один какой-нибудь вариант(только тот, который соответствует значению выражения), то нужно использовать оператор break .

В этом примере сработал 2-й вариант.

Цикл с предусловием while

Предназначение — while цикличное выполнение команд в теле цикла, включающее предварительную проверку, нужно ли это делать (истинно ли логическое выражение в заголовке). Если не нужно (выражение ложно), то конструкция заканчивает свою работу, иначе выполняет очередную итерацию и начинает все сначала. Выглядит цикл так:

где, как обычно, логическое_выражение — логическое выражение, а инструкция — простая или составная инструкция тела цикла. (Очевидно, что внутри последнего должны производиться какие-то манипуляции, которые будут иногда изменять значение нашего выражения, иначе оператор зациклится. Это может быть, например, простое увеличение некоего счетчика, участвующего в выражении, на единицу.) Если выражение с самого начала ложно, то цикл не выполнится ни разу.

Данный пример выводит все степени двойки до 31-й включительно. Как и инструкция if. цикл while имеет альтернативный синтаксис, что упрощает его применение вперемешку с HTML-кодом:

while(логическое_выражение):
команды;
endwhile;

Цикл с постусловием do-while

В отличие от цикла while. этот цикл проверяет значение выражения не до, а после каждого прохода. Таким образом, тело цикла выполняется хотя бы один раз. Выглядит оператор так:

do <
команды;
> while(логическое_выражение);

После очередной итерации проверяется, истинно ли логическое_выражение, и, если это так, управление передается вновь на начало цикла, в противном случае цикл обрывается.

Альтернативного синтаксиса для do-while разработчики PHP не предусмотрели (видимо, из-за того, что, в отличие от прикладного программирования, этот цикл довольно редко используется при программировании сценариев).

Универсальный цикл for

Этот цикл не зря называют универсальным — ведь с его помощью можно (и нужно) создавать конструкции, которые будут выполнять действия совсем не такие тривиальные, как простая переборка значения счетчика. Формат конструкции такой:

for(инициализирующие_команды; условие_цикла; команды_после_прохода)
тело_цикла;

Работает он следующим образом. Как только управление доходит до цикла, первым делом выполняются операторы, включенные в инициализирующие_команды (слева направо). Эти команды перечисляются там через запятую, например:

Затем начинается итерация. Первым делом проверяется, выполняется ли условие_цикла (как в конструкции while ). Если да, то все в порядке, и цикл продолжается. Иначе осуществляется выход из конструкции.

// прибавляем по одной точке
for($i=0,$j=0,$k="Test"; $i

Предположим, что тело цикла проработало одну итерацию. После этого вступают в действие команды_после_прохода (их формат тот же, что и у инициализирующих операторов).

Хочется добавить, что приведенный пример (да и вообще любой цикл for) можно реализовать и через while, только это будет выглядеть не так изящно и лаконично.

$i=0; $j=0; $k="Points";
while($i

Как обычно, имеется и альтернативный синтаксис конструкции:

for(инициализирующие_команды; условие_цикла; команды_после_прохода):
операторы;
endfor ;

Инструкции break и continue

Продолжим разговор про циклические конструкции. Очень часто для того, чтобы упростить логику какого-нибудь сложного цикла, удобно иметь возможность его прервать в ходе очередной итерации (к примеру, при выполнении какого-нибудь особенного условия). Для этого и существует инструкция break. которая осуществляет немедленный выход из цикла. Она может задаваться с одним необязательным параметром — числом, которое указывает, из какого вложенного цикла должен быть произведен выход. По умолчанию используется 1, т. е. выход из текущего цикла, но иногда применяются и другие значения:

В этом примере инструкция break осуществляет выход не только из второго, но и из первого цикла, поскольку указана с параметром 2.

Инструкцию break удобно использовать для циклов поисков: как только очередная итерация цикла удовлетворяет поисковому условию, поиск обрывается.

Например, вот цикл, который ищет в массиве $A первый нулевой элемент:

Стандартная функция count(). которую мы еще не рассматривали, просто возвращает число элементов в массиве $A. Инструкция continue так же, как и break. работает только "в паре" с циклическими конструкциями. Она немедленно завершает текущую итерацию цикла и переходит к новой (конечно, если выполняется условие цикла для цикла с предусловием). Точно так же, как и для break. для continue можно указать уровень вложенности цикла, который будет продолжен по возврату управления.

В основном continue позволяет вам сэкономить количество фигурных скобок в коде и увеличить его удобочитаемость. Это чаще всего бывает нужно в циклах-фильтрах, когда требуется перебрать некоторое количество объектов и выбрать из них только те, которые удовлетворяют определенным условиям.

Например, вот цикл, который обнуляет те элементы массива $A. которые удовлетворяют нескольким условиям:

Инструкция while

Инструкция (цикл) while используется в том случае, если некоторую последовательность действий (инструкций программы) надо выполнить несколько раз, причем необходимое число повторений во время разработки программы неизвестно и может быть определено только во время работы программы.

Типичными примерами использования цикла while являются вычисления с заданной точностью, поиск в массиве или в файле.

В общем виде инструкция while записывается следующим образом:

while условие do begin

// здесь инструкции, которые надо выполнить несколько раз

где условие — выражение логического типа, определяющее условие выполнения инструкций цикла.

1. Инструкция while выполняется следующим образом:

2. Сначала вычисляется значение выражения условие.

3. Если значение выражения условие равно False (условие не выполняется), то на этом выполнение инструкции while завершается.

4. Если значение выражения условие равно True (условие выполняется), то выполняются расположенные между begin и end инструкции тела цикла. После этого снова проверяется выполнение условия. Если условие выполняется, то инструкции цикла выполняются еще раз. И так до тех пор, пока условие не станет ложным (False).

Алгоритм, соответствующий инструкции while, представлен на рис. 2.14.

Для того чтобы инструкции цикла while, которые находятся между begin и end, были выполнены хотя бы один раз, необходимо, чтобы перед выполнением инструкции while значение выражения условие было истинно.

Рис. 2.14. Алгоритм инструкции while

Для того чтобы цикл завершился, нужно, чтобы последовательность инструкций между begin и end влияла на значение выражения условие (изменяла значения переменных, входящих в выражение условие).

Рассмотрим программу, которая вычисляет значение числа л с точностью, задаваемой пользователем во время работы программы. В основе алгоритма вычисления лежит тот факт, что сумма ряда 1 - 1/3 + 1/5 -1/7 + 1/9 +. приближается к значению л/4 при достаточно большом количестве членов ряда.

Каждый член ряда с номером n вычисляется по формуле: 1/(2*n - 1) и умножается на минус один, если n четное (определить, является ли п четным, можно проверкой остатка от деления п на 2). Вычисление заканчивается тогда, когда значение очередного члена ряда становится меньше, чем заданная точность вычисления.

Вид диалогового окна программы во время ее работы приведен на рис. 2.15. Пользователь вводит точность вычисления в поле ввода (Editi). После щелчка на командной кнопке Вычислить (Buttonl) программа вычисляет значение числа л и выводит результат в поле метки (Labeii).

Текст программы приведен в листинге 2.6. Как и в предыдущих примерах, основную работу выполняет процедура обработки события OnClick.

Рис. 2.15. Диалоговое окно программы Вычисление ПИ

Листинг 2.6. Вычисление числа я

unit pi_; interface

Windows, Messages, SysUtils, Classes, Graphics,

Controls, Forms, Dialogs, StdCtrls;

Edit1: TEdit; // точность вычисления

Button1: TButton; // кнопка Вычислить

Программирование - Delphi - Иллюстрированный самоучитель по Delphi 7 для начинающих - Инструкция while

Инструкция while

Инструкция (цикл) while используется в том случае, если некоторую последовательность действий (инструкций программы) надо выполнить несколько раз, причем необходимое число повторений во время разработки программы неизвестно и может быть определено только во время работы программы.

Типичными примерами использования цикла while являются вычисления с заданной точностью, поиск в массиве или в файле.

В общем виде инструкция while записывается следующим образом:

// здесь инструкции, которые надо выполнить несколько раз

где условие — выражение логического типа, определяющее условие выполнения инструкций цикла.

1. Инструкция while выполняется следующим образом:

2. Сначала вычисляется значение выражения условие.

3. Если значение выражения условие равно False (условие не выполняется), то на этом выполнение инструкции while завершается.

4. Если значение выражения условие равно True (условие выполняется), то выполняются расположенные между begin и end инструкции тела цикла. После этого снова проверяется выполнение условия. Если условие выполняется, то инструкции цикла выполняются еще раз. И так до тех пор, пока условие не станет ложным (False).

Алгоритм, соответствующий инструкции while, представлен на рис. 2.14.

Для того чтобы инструкции цикла while, которые находятся между begin и end, были выполнены хотя бы один раз, необходимо, чтобы перед выполнением инструкции while значение выражения условие было истинно.

Рис. 2.14. Алгоритм инструкции while

Для того чтобы цикл завершился, нужно, чтобы последовательность инструкций между begin и end влияла на значение выражения условие (изменяла значения переменных, входящих в выражение условие).

Рассмотрим программу, которая вычисляет значение числа л с точностью, задаваемой пользователем во время работы программы. В основе алгоритма вычисления лежит тот факт, что сумма ряда 1 - 1/3 + 1/5 -1/7 + 1/9 +. приближается к значению л/4 при достаточно большом количестве членов ряда.

Каждый член ряда с номером n вычисляется по формуле: 1/(2*n - 1) и умножается на минус один, если n четное (определить, является ли п четным, можно проверкой остатка от деления п на 2). Вычисление заканчивается тогда, когда значение очередного члена ряда становится меньше, чем заданная точность вычисления.

Вид диалогового окна программы во время ее работы приведен на рис. 2.15. Пользователь вводит точность вычисления в поле ввода (Editi). После щелчка на командной кнопке Вычислить (Buttonl) программа вычисляет значение числа л и выводит результат в поле метки (Labeii).

Текст программы приведен в листинге 2.6. Как и в предыдущих примерах, основную работу выполняет процедура обработки события OnClick.

Рис. 2.15. Диалоговое окно программы Вычисление ПИ

Windows, Messages, SysUtils, Classes, Graphics,

Controls, Forms, Dialogs, StdCtrls;

Edit1: TEdit; // точность вычисления

Button1: TButton; // кнопка Вычислить

Циклы for, while, do

Циклы for, while, do/while в JavaScript

Цикл - это инструкция, позволяющая повторять выполнение некоторых действий (инструкций) определенное количество раз. Каждое отдельное исполнение инструкций в теле цикла называется итерация.

Каждый цикл состоит из двух основных частей. Первая определяет, условие выполнения цикла. Вторая - собственно фрагмент программного кода, выполняющий необходимые действия, который может состоять из одной единственной инструкции или из нескольких инструкций, заключенных в фигурные скобки.

Цикл while

Синтаксис цикла while:

Инструкция while сначала вычисляет значение выражения.
Полученное значение, если необходимо, неявно преобразуется к логическому типу. Само выражение называется условием выполнения цикла while или просто условие.
Если выражение имеет ложное значение, интерпретатор не выполняет тело цикла, и переходит к выполнению следующей инструкции в коде программы.
Если результатом вычисления выражения является истинное значение, то тело цикла выполняется, затем управление передается в начало цикла и выражение вычисляется снова. Иными словами, интерпретатор снова и снова выполняет инструкции расположенные в теле цикла, пока значение выражения остается истинным.

Рассмотрим простой пример цикла while :

Код: var count = 0; // определяем переменную счётчик
while (count < 5) <
document.write(count + " ");
count++; // если из кода убрать эту строку, то цикл будет бесконечным
>

Перед началом цикла значение переменной count устанавливается равным 0 (значение может быть любым) .
Это называется инициализацией переменной-счетчика. Значение выражения (count < 5) проверяется каждый раз перед итерацией цикла. Когда исполняется тело цикла, с помощью инкремента count++ значение переменной count увеличивается на единицу.
После пяти итераций выражение вернет значение false(так как значение переменной count уже будет не меньше 5) и работа цикла прекратится.

Большинство циклов имеют переменные-счетчики, аналогичные переменной count .
Чаще всего в качестве счетчиков цикла выступают переменные с именами i. j и k. хотя для того чтобы сделать программный код более понятным, следует давать счетчикам более наглядные имена.

Цикл do/while

Синтаксис цикла do/while:

Циклы в JavaScript. Синтаксис цикла do/while в JavaScript cikly-v-javascript-sintaksis-cikla-do-while-v-javascript.png (5.82 КБ) Просмотров: 187

Цикл do/while похож на цикл while. за исключением того, что проверка условия выполнения цикла производится после итерации, а не в начале, и завершается цикл точкой с запятой.
Так как условие проверяется в конце, тело цикла do/while всегда выполняется минимум один раз:

Код: var count = 0;
do <
document.write(count + " ");
count++;
> while(count < 5);

Данный цикл может быть полезен, когда код в теле цикла должен быть выполнен хотя бы один раз, независимо от условия выполнения.

Цикл for

Большинство циклов имеют некоторую переменную-счетчик.
Эта переменная инициализируется перед началом цикла и проверяется перед каждой итерацией. Далее переменная-счетчик инкрементируется или изменяется каким-либо другим образом в конце тела цикла, непосредственно перед повторной проверкой условия выполнения цикла. И так, мы видим, что инициализация, проверка и обновление - это три ключевых операции, выполняемых с переменной цикла.
Эти три шага являются явной частью синтаксиса цикла for:

Синтаксис цикла for в JavaScript

Таким образом, все элементы, контролирующие выполнение цикла for. собраны в одном месте, в то время как в циклах других типов они находятся в различных частях кода.

Цикл for состоит из ключевого слова for. за которым следуют круглые скобки, внутри которых располагаются три выражения, разделяемые точками с запятой.
Он имеет следующий порядок выполнения:

  1. Первое выражение всегда вычисляется только один раз - в начале цикла. В цикле for допускается определять переменные, поэтому обычно в качестве первого выражения выступает определение переменной-счетчика.
  2. Второе выражение определяет условие выполнения цикла. Оно вычисляется перед каждой итерацией и определяет, будет ли выполняться тело цикла. Если результатом вычисления выражения является истинное значение, инструкции, являющиеся телом цикла - выполняются. Если возвращается ложное значение, выполнение цикла завершается. Если при первой проверке условия, оно оказывается ложным, тело цикла не выполнится ни разу.
  3. После каждой итерации вычисляется третье выражение. Обычно его используют для изменения значения переменной-счетчика, которая используется в проверке условия выполнения цикла.

Небольшой пример, в котором выводятся цифры от 0 до 4:

Код: for [i](var count = 0; count < 5; count++)[/i]
document.write[i](count + " ")[/i];

Любое из выражений может отсутствовать, однако сами точки с запятой (; ) обязательно должны присутствовать, иначе будет ошибка синтаксиса.
Если второе выражение отсутствует, это означает, что цикл будет выполняться бесконечно.

Код: var i = 0;
for [i](; i < 4; i++)[/i].

var i = 0;
for [i](; i < 4; )[/i].

for [i](var i = 1; /* нет условия */ ; i++)[/i].

// Это эквивалентно следующему коду
for [i](var i = 1; true; i++)[/i].

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

Код: // не выполнится, так как в проверке условия последнее выражение false
for (i = 1; i < 4, false; i++).

for (var i = 1, j = 5; i <= 5; i++, j--)
document.write(i + " " + j +"<br>");

Вложенные циклы

Циклы могут иметь любое количество уровней вложенности:

Код: for(var i = 0; i < 3; i++) <
document.write("Часть внешнего цикла. <br>");
for(var j = 0; j < 2; j++) <
document.write("Часть вложенного цикла. <br>");
>
>
document.write("<br>");

var i = j = 0;
while (i < 3) <
j = 0;
document.write("Часть внешнего цикла. <br>");
while(j < 1) <
document.write("Часть вложенного цикла. <br>");
j++;
>
i++;
>

Обратите внимание, что вложенный цикл полностью выполняется при каждой итерации внешнего цикла.

Инструкции break и continue

Иногда бывают ситуации, когда необходимо прервать выполнение цикла.
Инструкция break приводит к немедленному выходу из текущего цикла.
Синтаксис инструкции break достаточно прост:

Ниже показано применение инструкции break :

Код: for(var i = -10; i <= 10; i++) <
if(i > 0) break; //завершить цикл, как только значение
//переменной i станет положительным
document.write(i + " ");
>
document.write("Готово!<br><br>");

var j = -1;
for(var i = 0; i < 3; i++) <
document.write("Часть внешнего цикла. <br>");
while (j < 5) <
j++;
if (j == 2 || j == 3) break;
document.write("j: "+ j +"<br>");
>
>

Инструкция continue схожа с инструкцией break. однако вместо выхода из цикла она запускает новую итерацию цикла.
Инструкция continue может использоваться только в циклах.
Синтаксис инструкции continue также прост, как и синтаксис инструкции break :

Когда выполняется инструкция continue. текущая итерация цикла прерывается и начинается следующая.
Для разных циклов инструкция дает разный эффект:

  • После выполнения инструкции continue в цикле while проверяется условие выполнения, и если оно имеет значение true. тело цикла выполняется.
  • В цикле for после выполнения инструкции continue сначала вычисляется третье выражение, и только затем происходит проверка условия.
  • В цикле do/while после выполнения инструкции continue происходит переход в конец цикла и проверяется условие выполнения, если оно имеет значение true. тело цикла выполняется.

Ниже приведен пример, в котором инструкция continue используется в качестве вспомогательного средства для вывода четных чисел в пределах от 0 до 20:

Код: for (var i = 0; i <= 20; i++) <
if((i % 2) != 0) continue;
document.write(i + " ");
>

Метки инструкций

В JavaScript любая инструкция может быть помечена предшествующим идентификатором с двоеточием.
Такой идентификатор называется меткой.

Метки инструкций имеют следующий синтаксис:

Код: идентификатор: инструкция

// допускается идентификатор и инструкцию размещать на разных строках

Помечая инструкцию, вы тем самым даете ей имя, которое затем можно будет использовать внутри инструкции для того, чтобы сослаться на него. Помечать можно любую инструкцию, однако использовать метки для перехода можно только в тех инструкциях, которые имеют тело. На практике метки используются только с циклами. Применив метку к циклу, ее затем можно использовать для выхода из цикла или для перехода к следующей итерации.

Инструкции break и continue являются единственными инструкциями с помощью которых может быть осуществлен переход к метке. Имя метки указывается за ключевым словом break или continue :

Код: break имя_метки;

Ниже приводится пример цикла while с меткой:

test:
while (i < 5) <
i++;
if (i == 2 || i == 3) continue test;
document.write(i + " ");
>

Идентификатор, используемый в качестве метки инструкции, может быть любым допустимым идентификатором JavaScript, кроме зарезервированного слова.
Пространство имен для меток отличается от пространства имен для переменных и функций, поэтому в качестве меток допускается использовать идентификаторы, совпадающие с именами переменных или функций.

i:
while (i < 5) <
i++;
if (i == 2 || i == 3) continue i;
document.write(i + " ");
>

Переход к метке инструкции можно также осуществлять и из вложенных инструкций. Это бывает полезным, например, если необходимо выйти одновременно из нескольких уровней вложенности цикла.

Код: test:
for (var i = 0; i < 5; i++)
for (var j = 0; j < 5; j++)
if (j == 3) break test; // Завершает выполнение внешнего цикла

document.write("i: " + i + "<br> j: " + j);

test:
for (var i = 0; i < 5; i++)
for (var j = 0; j < 5; j++)
if (j == 3) continue test; // Переходит к следующей итерации внешнего цикла

document.write("<br><br>i: " + i + "<br> j: " + j);

Инструкция break с меткой может быть использована не только внутри циклов и инструкции switch. но также выполнять «выход» и из любой вмещающей ее составной инструкции.

Код: var num = 10;

test: <
if (num == 10) break test;
document.write(num); // не будет выполнено
>

Циклы JavaScript: for, while, do-while

Циклы JavaScript

Цикл – это управляющая инструкция, позволяющая повторять выполнение программного кода определённое количество раз. Каждое отдельное исполнение инструкций в теле цикла называется итерацией .

Цикл while

Синтаксис цикла while :

Выражение в круглых скобках называется условием выполнения цикла или кратко условием. Сначала вычисляется значение выражения. Полученное значение, если необходимо, неявно преобразуется к булеву типу. Если результатом вычисления выражения является значение true. то инструкция, расположенная в теле цикла, выполняется, затем управление передаётся в начало цикла и условие вычисляется снова. Если результатом вычисления выражения является значение false. интерпретатор завершает работу цикла и переходит к выполнению инструкции следующей за циклом. Таким образом, интерпретатор снова и снова выполняет код расположенный в теле цикла, пока условие остаётся истинным:

Цикл do-while

Синтаксис цикла do-while :

Цикл do-while похож на цикл while. за исключением того, что проверка условия выполнения цикла производится после первой итерации, а не перед ней, и завершается цикл точкой с запятой. Так как условие проверяется после итерации, код в теле цикла do-while всегда выполняются минимум один раз:

Данный цикл может быть полезен, когда код в теле цикла должен быть выполнен хотя бы один раз, независимо от условия выполнения.

Цикл for

Синтаксис цикла for :

В цикле for располагаются три выражения, разделяемые точкой с запятой. Эти три выражения имеют следующий порядок выполнения:

  1. Первое выражение всегда вычисляется только один раз – перед первой итерацией. Поэтому обычно в качестве первого выражения выступает определение переменной, которая используется в условии выполнения цикла в качестве счётчика.
  2. Второе выражение определяет условие выполнения цикла. Оно вычисляется перед каждой итерацией и определяет, будет ли выполняться тело цикла. Если результатом вычисления выражения является истинное значение, программный код в теле цикла выполняется. Если возвращается ложное значение, выполнение цикла завершается и управление переходит к следующей после цикла инструкции. Если при первой проверке условия, оно оказывается ложным, код в теле цикла не выполнится ни разу.
  3. После каждой итерации вычисляется третье выражение. Обычно его используют для изменения значения переменной, которая используется в проверке условия выполнения цикла.

Пример цикла for :

Как видно из примера, цикл for в отличие от других циклов позволяет сгруппировать связанный с циклом код в одном месте.

Любое из выражений в цикле for может отсутствовать, однако сами точки с запятой обязательно должны присутствовать, иначе будет синтаксическая ошибка. При отсутствии второго выражения цикл будет выполняться бесконечно.

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

Цикл for-in

Цикл for-in используется для перебора в случайном порядке перечисляемых свойств объекта и имеет следующий синтаксис:

Слева от ключевого слова in указывается имя переменной, которой перед началом каждой итерации цикла присваивается в виде строки имя одного из свойств объекта. Справа от ключевого слова in указывается объект, свойства которого будут перебираться циклом. Цикл будет выполняться до тех пор, пока не будут перебраны все доступные свойства. Если переменная, представляющая объект, будет иметь значение null или undefined цикл не выполнится ни разу:

Чтобы связанный с циклом код был в одном месте, в цикле for-in допускается объявлять переменную. Поэтому, в качестве выражения перед ключевым словом in обычно выступает объявление переменной, которой будут присваиваться имена свойств.

С этой темой смотрят: