Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга по написанию робота под MT4.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
484 Кб
Скачать
☆

Формат оператора цикла while:

while (выражение) оператор;

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

Цикл while может быть не выполнен ни разу, если "выражение" изначально (при первой проверке) было ложным.

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

К сожалению, в нашем первом эксперте я не использую цикл while, поэтому пример его использования мне придется просто придумать:

int i = 0; while ( i < 9 ) { Print( i ); i++; } Print ("Done");

При первой проверке "выражение" (i<9) будет истинным (т.к. 0<9) и будет выполнен составной оператор, который состоит из функции Print (вывода информации в журнал экспертов), которая выведет число 0 в журнал, и из оператора i++, который увеличивает переменную i на единицу.

Далее выражение i<9 будет вычислено еще раз. На этот раз оно опять будет истинным. В результате в лог файл будет выведено текущее значение переменной i (т.е. 1), а после этого значение переменной будет опять увеличено на единицу и станет равным 2. Цикл будет повторяться до тех пор, пока значение переменной i не станет равным 9. Тогда выражение i<9 перестанет быть истинным и цикл прервется, а управление будет передано следующему оператору:

Print ("Done");

Оператор цикла for

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

Формат оператора цикла for:

for ( выражение1; выражение2; выражение3 ) оператор;

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

После этого вычисляется "выражение2". Если оно истинно, то выполняется "оператор". Далее вычисляется "выражение3". Первая итерация цикла закончена. Вторая итерация начинается опять с вычисления "выражения2". Если оно истинно, то выполняется "оператор". Далее опять вычисляется "выражение3" и так продолжается до тех пор, пока "выражение2" будет истинным. Если же уже на первой итерации "выражение2" будет ложным, то цикл не исполнится ни разу.

Если вникнуть в логику работы оператора цикла for, то можно заметить, что она полностью соответствует следующему фрагменту кода с использование оператора цикла while:

выражение1; while ( выражение2 ) { оператор; выражение3; }

В прошлом выпуске мы рассмотрели пример использования оператора цикла while:

int i = 0; while ( i < 9 ) { Print( i ); i++; } Print ("Done");

Этот пример можно переписать с использованием оператора цикла for:

int i; for (i = 0; i < 9; i++) Print( i ); Print ("Done");

Не будет ошибкой, если любое из трех или все три выражения в операторе цикла for будут отсутствовать, однако разделяющие их точки с запятыми (;) опускать нельзя. Если отсутствует "выражение2", то принимается, что оно всегда равно true.

"Выражение1" и "выражение3" могут состоять из нескольких выражений, объединенных запятой. В этом случае вычисляется каждое из выражение, причем порядок вычисления будет слева направо:

for (i = 0, j = 0; i < 9; i++) Print ( "i = ", i, " j= ", j );

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

Досрочный выход из цикла с помощью оператора break

В прошлых выпусках я рассказал о двух способах организации циклов в советнике: операторе цикла while и об операторе цикла for.

Достаточно часто возникает потребность досрочно выйти из цикла - для этого используется оператор break.