Загрузка данных
Часть 2.2. Цикл: Для…Цикл
Итак, начнем изучать циклы. Что такое вообще Цикл? Цикл – действие, выполняемое
определенное количество раз. Под действием понимается один или несколько операторов.
Рис. 2.2.1
85
Низамутдинов И.И. ПРОГРАММИРОВАТЬ В 1С – ЗА 9 ШАГОВ.
Изучите рисунок 2.2.1, он как раз применим к осваиваемой теме. Пока идет перечисление
какого-нибудь параметра от одного значения до другого, то выполняются определенные
действия. Как только параметр достигает максимального значения, мы выходим из цикла и
продолжаем выполнение программы.
Первый цикл который мы изучим, будет цикл Для…Цикл.
Данный оператор имеет следующий синтаксис (пока мы его рассмотрим в самом общем
виде, а углублять будем по мере изучения):
Для ИмяПеременной = Выражение1 по Выражение2 цикл
//операторы
КонецЦикла.
Где
«ИмяПеременной» – это переменная счетчик цикла, его значение увеличивается на
единицу при каждом повторении цикла.
«Выражение1» – числовое выражение, оно задает начальное значение, которое
присваивается счетчику цикла при первом обходе.
«Выражение2» – максимальное значение счетчика цикла. Когда переменная
ИмяПеременной становится больше Выражение2, программа выходит из цикла, т.е.
операторы внутри конструкции Для …Цикл больше не выполняются.
«Цикл» – ключевое слово, которое открывает тело цикла.
«КонецЦикла» – ключевое слово, которое закрывает тело цикла.
Все, что находится между ключевыми словами Цикл и КонецЦикла, будет выполняться ,
пока ИмяПеременной находится в интервале от Выражение1 до Выражение2.
Обращаю внимание, что Выражение1 всегда должно быть меньше или равно
Выражение2.
Создайте самостоятельно обработку, форму, и в обработчике нажатия кнопки
«Выполнить» формы напишем следующий код:
Рис. 2.2.2
В данном примере мы создали цикл Для…Цикл, где счетчик цикла называется «н», и
начальное его значение равно 1, а конечное его значение равно 10.
И при каждом обходе цикла, выводим сообщение о том, чему равно «н».
Сохраните обработку, запустите и посмотрите, что у Вас выйдет в окно сообщений.
86
Низамутдинов И.И. ПРОГРАММИРОВАТЬ В 1С – ЗА 9 ШАГОВ.
Циклы можно вкладывать друг в друга.
Запишите следующий пример:
Рис. 2.2.3
Как работает такой цикл? Сначала выполняется внешний цикл, т.е. переменной «н»
присваивается значение 1, потом полностью выполняется внутренний цикл, т.е. значение «к»
проходит от 1 до 7, после этого управление передается опять на внешний цикл.
Сохраните обработку и посмотрите, что получится.
Если Вам трудно понять очередность внешнего и внутреннего цикла, поставьте
самостоятельно сообщения перед внутренним циклом, и после него, тогда все встанет на свои
места.
Значения Выражение1 и Выражение2 могут задаваться пользователем в виде
переменных.
Сделайте следующий пример:
Рис. 2.2.4
Разберите его самостоятельно и посмотрите, как он работает.
Продолжим изучение цикла Для..Цикл. И углубим нашу схему, введя оператор
Прервать.
87
Низамутдинов И.И. ПРОГРАММИРОВАТЬ В 1С – ЗА 9 ШАГОВ.
Данный оператор прерывает выполнение цикла в любой его точке. После выполнения
данной команды, управление передается оператору, следующему после ключевого слова
КонецЦикла.
С данным оператором конструкция цикла будет иметь следующий вид:
Для ИмяПеременной = Выражение1 по Выражение2 цикл
//операторы
Прервать.
//операторы
КонецЦикла.
Сделайте пример, который нам объяснит использование данного оператора.
Рис. 2.2.5
Сохраните обработку и посмотрите, как она работает. Должен быть следующий
результат:
Рис. 2.2.6
Как видно из результата выполнения данной обработки, произошел только первый
шаг, дальше цикл не стал продолжаться. Как правило, данный оператор ставят внутри
опеделенного условия.
Смотрим еще один пример.
Рис. 2.2.7
88
Низамутдинов И.И. ПРОГРАММИРОВАТЬ В 1С – ЗА 9 ШАГОВ.
В этом примере наш цикл следует от -10 до 10, в том случае, когда счетчик цикла
равняется нулю, мы выходим из цикла, чтобы не сгенерировалась исключительная ситуация.
Напоследок, мы разберем оператор Продолжить. Еще углубим схему конструкции.
Для ИмяПеременной = Выражение1 по Выражение2 цикл
//операторы
Продолжить;
//операторы
Прервать.
//операторы
КонецЦикла.
Оператор Продолжить передает управление в начало цикла, после этого происходит
вычисление и проверка условий выполнения цикла. Все, что следует за данным оператором,
на этой итерации цикла выполняться не будет.
Сделайте следующий пример, и посмотрите результат его работы:
Рис. 2.2.8
А теперь подправьте наш пример:
Рис. 2.2.9
Выполните обработку. Как видите, сообщение о делении единицы на «н» в квадрате
89
Низамутдинов И.И. ПРОГРАММИРОВАТЬ В 1С – ЗА 9 ШАГОВ.
не выходит, потому что оператор Продолжить передал управление в начало цикла.
Также оператор Продолжить можно выполнять внутри условия.
Сделайте следующий пример:
Рис. 2.2.10
В данном примере при «н» равном нулю, мы не прерываем цикл, как это делали в
предыдущей главе, а просто начинаем его заново, чтобы не сгенерировалась ошибка.
Только что мы с Вами изучили самый простой вид цикла, который есть в языке
программирования 1С. Он простой, но основополагающий, научитесь хорошо его понимать
и с легкостью им пользоваться. Только после этого приступайте к изучению следующих
частей данной главы.
Глава 2. Часть 2. Цикл: Для…Цикл
1) Выведите следующий ряд x x 2 x
3
, где i = 1…10;
i i i
2) Выведите следующий ряд
1
, где i =-10 …10, обработайте
20 x x
2
i i
ситуацию когда знаменатель может быть равен 0.
3) Интерактивно введите дату, выведите в окно сообщений каждый день
месяца, дата которого была задана.
4) Интерактивно введите дату, выведите в окно сообщений название дней
недели той недели на которую приходится эта дата (используйте
внутри цикла конструкцию Если…ИначеЕсли, и функции из части 6 2-
го урока).
5) Задайте интерактивно две даты. Первая дата должна быть ранее
второй, если это не так, то сообщайте об этом пользователю (см часть 2
второго урока). Выведите все даты с первой по последнюю, кроме
субботы и воскресенья.
6) Выведите 12 месяцев, используя цикл Для..Цикл, и функцию Формат.
7) Введите интерактивно многострочную строку, используя цикл
Для...Цикл и функции из части 5 второго урока, выведите каждую
строку по отдельности.
8) Введите какое-нибудь предложение, используя цикл Для..Цикл и
функции из части 5 урока 2 выведите в окно сообщений каждое слово
по отдельности.