Как сделать цикл в обратном порядке
Внимание! В конце статьи ссылка на видеоурок.
Если Вы раньше не сталкивались с программированием, то вероятно не совсем понятна необходимость использования цикла в программе 1С. В этой статье я расскажу об операторах цикла, а также об их основном назначении.
Но сначала, для ясности, несколько пояснений об употребляемых в статье выражениях:
Итерация – это повторение.
Операторные скобки – зарезервированные слова, которые всегда записываются парами, открывающим оператором и закрывающим оператором. Например: Функция – КонецФункции, Если – КонецЕсли, Для – КонецЦикла и т.д.
Тело цикла – программный код находящийся внутри операторных скобок цикла.
Цикл – это конструкция, которая повторяет выполнение строк находящихся в теле цикла, количество повторений зависит от результата выполнения условий в начале цикла.
Цикл 1С Для
Цикл 1С Пока
Цикл 1С Для каждого
Обратный цикл 1С
Также существует обратный цикл, который можно использовать для обхода коллекций в обратном порядке т.е. снизу вверх(с конца). Такой способ может понадобиться если нужно удалять элементы коллекции
Операторы продолжить и прервать рассматриваются в видео, ссылка ниже.
Комментарии
Александр12, если коротко, то между словами "Пока" и "Цикл" пишется выражение, результатом вычисления которого должно быть значение "Истина", чтобы программа зашла внутрь цикла. В указанном Вами примере "1=1", 1 действительно равно 1, следовательно программа зайдет внутрь цикла. Выражения могут быть любые, а не только сравнения чисел. Примеры есть в видеоуроке, ссылка на файл в конце статьи. Если что-то не понятно пишите, постараюсь объяснить.
Прочитал тему. Как начинающему мне непонятно как используется данный метод (ЦИКЛ), то есть "Пока 1=1 Цикл", что значит единица слева и что значит справа?. Подскажите, пожалуйста.
Можно, для помощи нужна более конкретная информация, что не получается. Задайте вопрос на форуме в разделе "Общие вопросы 1С" или напишите мне письмо.
Можно ли с помощью цикла решить задачку?
Изменить цены уже набранной номенклатуры для одного контрагента, на цены выбранного. (1С:Предприятие 8.1 (8.1.14.72))
Возвращает элементы последовательности в обратном порядке.
Синтаксис:
Параметры:
Возвращаемое значение:
Описание:
Функция reversed() возвращает обратный итератор, то есть возвращает итератор, который перебирает элементы оригинала в обратном порядке.
Функция reversed() не создает копию и не изменяет оригинал последовательности.
Объект seq должен иметь метод __reversed__() или поддерживает протокол последовательности, это метод __len__() и метод __getitem__() с целочисленными аргументами, начинающимися с 0 .
Привет всем, помогите. в дереве значений убираю строки, но если нужные строки следуют одна за другой то цикл пропускает 2-ю строку, как сделать перебор строк в цикле в обратном порядке, это вроде должно решить вопрос..
вот сам цикл;
для Каждого Строка из ТабличноеПоле1.Строки цикл
Если строка.Дата Птица
(1) (2) спасибо огромное. оба способа работают, 1-перебором в обратном порядке, второй выгрузкой в массив! я правильно понял?
а можно еще вопрос, объясните пожалуйста, что за "СтрокаДляУдаления", я не понимаю откуда берется эта переменная..
Говорят, что лучший программист — ленивый программист. Вместо того, чтобы совершать однотипные действия по нескольку раз, он придумает алгоритм, который сделает эту работу за него. А еще он сделает его хорошо, чтобы не нужно было переделывать. Примерно так, чтобы много раз не писать один и тот же код, придумали циклы. Представим, что нам нужно вывести в консоль числа от 0 до 99. Код без цикла: Этот код займет 100 строк! Очень много. А вот как это будет выглядеть с циклом: Всего 3 строки!
Что такое циклы for?
- Приготовить стакан.
- Открыть крышку.
- Получить 1 каплю.
- Получить 2 каплю. …
- Получить 30 каплю.
- Закрыть лекарство.
- Принять полученную порцию.
- Приготовить стакан.
- Открыть крышку капель.
- Получить 30 капель.
- Закрыть лекарство.
- Принять полученную порцию.
Принцип работы цикла for
For цикл используется следующим образом: Вывод: Если перевести данную запись на человеческий язык, получится следующее: “Создай переменную i с начальным значением 0, пока она не достигнет 5, прибавляй к ней по 1 и на каждом шаге записывай значение i в консоль.” В основе работы цикла for в Java лежат три стадии, их можно изобразить следующей схемой: Условие выхода из цикла — это булево выражение. Если оно ложно, цикл будет завершен. В примере выше переменная i увеличивается на 1. Если ее значение менее 5, цикл продолжается. Но как только i станет больше или равно 5, цикл прекратится. Оператор счетчика — выражение, которое выполняет преобразование переменной счетчика. В примере выше переменная i увеличивалась на 1. То есть цикл будет выполнен ровно 5 раз. Если оператор счетчика будет прибавлять по 2 к переменной i , результат будет иным: Вывод: Также можно умножать переменную, делить, возводить в степень, в общем, делать все, что угодно. Главное, чтобы в результате преобразования получилось число. Тело цикла — любой код, который может быть выполнен. В примере выше в теле цикла был вывод значения переменной i в консоль, однако содержимое данного тела ограничено задачей и фантазией. Обобщая всю схему, принцип данного цикла — for — следующий: код, который находится в теле цикла, будет выполнен столько раз, сколько преобразований выполнит оператор счетчика до того, как будет достигнуто условие выхода из цикла. Если задать условие выхода из цикла как true : То код после цикла будет помечен ошибкой unreachable statement , так как никогда не будет исполнен. Задача на смекалку: в результате запуска кода ниже будет ли выведено в консоль “ Loop ended ” или цикл будет выполняться бесконечно? Ответ: будет. Переменная i рано или поздно достигнет максимального значения, а дальнейшее увеличение превратит ее в максимальное отрицательное, в результате чего условие выхода будет выполнено (i j есть возможность обращаться к счетчику внешнего цикла. Благодаря этому вложенные циклы — идеальный способ обхода двумерного, трехмерного и прочих массивов: Вывод:
Досрочное завершение цикла
Если при обработке цикла нужно его прервать, используйте оператор break , который останавливает работу текущего тела цикла. Все последующие итерации также пропускаются: Метод выведет позицию первого искомого элемента в массиве: Вывод:
Бесконечный цикл
Еще один способ создать бесконечный цикл for — оставить пустой область объявления счетчика, условие выхода и оператор счетчика: Но учти, что в большинстве случаев бесконечный цикл — свидетельство логической ошибки. У такого цикла обязательно должно быть условие выхода.
Читайте также: