Циклы в 1с примеры использования. Система программирования 1с : Предприятие 8 содержит 3 вида операторов цикла:
Рассмотрим применение операторов цикла на примере решения задачи нахождения чисел Фибоначчи. Постановка задачи:
“Пусть в огороженном месте имеется пара кроликов (самка и самец) в первый день января. Эта пара кроликов производит новую пару кроликов в первый день февраля и затем в первый день каждого следующего месяца. Каждая новорожденная пара кроликов становится зрелой уже через месяц и затем через месяц дает жизнь новой паре кроликов. Возникает вопрос: сколько пар кроликов будет в огороженном месте через год, то есть через 12 месяцев с начала размножения?”
Во-первых создадим обработку. Содержащую один реквизит ВерхняяГраница типа Число:
Во-вторых на Форму Обработки разместим 3 команды. Для каждого вида своя команда.
Пример применения цикла Для Цикл
Решим задачу нахождения чисел Фибоначчи используя Цикл Для. Известно, что верхняя граница равна 12. В качестве верхней границы цикла можно использовать переменную. В таком можно будет найти произвольное количество таких чисел.
&НаКлиенте
Процедура Команда1(Команда)
// Цикл Для
Перем ВерхняяГраница;
ВерхняяГраница=Объект.ВерхняяГраница;
//Первые два элемента зададим за циклом
Первый=1;
Сообщить(Первый);
Второй=1;
Сообщить(Второй);
Для Номер=3 по ВерхняяГраница Цикл
Текущий=Первый+Второй;
Сообщить(Текущий);
Первый=Второй;
Второй=Текущий;
КонецЦикла;
КонецПроцедуры
Пример применения цикла Пока
Решим задачу нахождения чисел Фибоначчи используя Цикл Пока. Известно, что верхняя граница равна 12. В качестве верхней границы цикла также будем использовать переменную. Цикл Пока является условным. Он выполняется Пока условие цикла Истинна.
&НаКлиенте
Процедура Команда2(Команда)
// Вставить содержимое обработчика.
// Цикл Для
Перем ВерхняяГраница;
ВерхняяГраница=Объект.ВерхняяГраница;
//Первые два элемента зададим за циклом
Первый=1;
Сообщить(Первый);
Второй=1;
Сообщить(Второй);
Номер=3;
пока Номер<=ВерхняяГраница Цикл
Текущий=Первый+Второй;
Сообщить(Текущий);
Первый=Второй;
Второй=Текущий;
Номер=Номер+1;
КонецЦикла;
КонецПроцедуры
Цикл Пока не позволяет задать начальное значение переменной цикла. Поэтому начальное значение задается перед Циклом
Номер=3;
Также Цикл Пока в отличии от цикла Для не имеет внутреннего счетчика. Поэтому Была добавлена строка кода:
Номер=Номер+1;
Пример применения цикла Для Каждого
Решение задачи используя Цикл Для Каждого. Этот цикл можно применять только к массивам или другим Универсальным коллекциям значений .
&НаКлиенте
Процедура Команда3(Команда)
// цикл для каждого
//создаем массив
ВерхняяГраница=Объект.ВерхняяГраница;
Массив=Новый массив(ВерхняяГраница);
Массив[0]=1;
Массив[1]=1;
Для Номер=2 по ВерхняяГраница-1 Цикл
Массив[Номер]=Массив[Номер-1]+Массив[Номер-2];
КонецЦикла;
//выводим массив
для Каждого Элемент из Массив цикл
Сообщить(Элемент);
конецЦикла;
КонецПроцедуры
В Этом примере используется два вида циклов:
Во-первых цикл Для при создании массива.
Для Номер=2 по ВерхняяГраница-1 Цикл
Массив[Номер]=Массив[Номер-1]+Массив[Номер-2];
КонецЦикла;
Во-вторых цикл Для Каждого для вывода массива
//выводим массив
для Каждого Элемент из Массив цикл
Сообщить(Элемент);
конецЦикла;
В результате Нами рассмотрен пример использования всех трех видов циклов в 1с.
Спасибочки 🙂 Классная тема, пишите чаше – у вас отлично получается 🙂