ПЕРЕРИВАННЯ ЦИКЛУ. ОБ’ЄДНАННЯ УМОВ

Вийти з циклу і передати управління на перший наступний за циклом виконуваний оператор можна, застосувавши оператор Перервати Щоб пропустити частину операторів циклу і перейти до наступної ітерації, слід використовувати оператор Продовжити При цьому управління передається оператору початку циклу оператору Для або Поки Оператори Перервати і Продовжити окремо не застосовуються, а вбудовуються в конструкції Якщо.

ПрикладПовідомити значення першої неперіодичної константи числового типу

/ / Процедура, що виводить значення першої неперіодичної константи числового типу

/ / Запускається з обробки Проба процедура Виконати ()

перем всегоКонстант, флагВивода, ин, ідеї ОчістітьОкноСообщеній ()

// флагВивода прийме значення 1, якщо буде виявлена

/ / Неперіодична константа числового типу флагВивода = 0

всегоКонстант = МетаданниеКонстанта () для ін = 1 по всегоКонстант цикл

якщо МетаданниеКонстанта (ін) Періодичний = 1 тоді

продовжити / / Передаємо управління оператору Для КонецЕсли

якщо МетаданниеКонстанта (ін) Тип = Число тоді

ідеї = МетаданниеКонстанта (ін) Ідентифікатор

Повідомити (іден + ” + КонстантаПолучітьАтрібут (іден)) / / БалансДней 1 флагВивода = 1

перервати / / Достроковий вихід з циклу Для

КонецЕсли конецЦікла / / Для

якщо флагВивода = 0 тоді

Повідомити (В конфігураторі немає неперіодичних констант числового типу”) КонецЕсли

КонецПроцедури / / Виконати

Зауваження   Іноді програмісти в циклі Для замість оператора Перервати вдаються до зміни значення змінної циклу ин Так, в нашому випадку оператор Перервати міг бути замінений оператором

ін = всегоКонстант

Такі дії, однак, класифікуються як поганий стиль програмування

Деякі програмісти вважають, що оператори переривання циклу (в 1С це Продовжити і Перервати) погіршують структуру програми, і тому по можливості відмовляються від їх вживання Взаємини використовується обєднання умов

Послідуємо і ми принципамструктурного програмування,написавши вирішальний вищенаведену задачу код, що використовує обєднання умов У цьому коді нам доведеться відмовитися від циклу Для, замінивши його циклом Поки

/ / Процедура, що використовує обєднання умов і що виводить значення першої

/ / Неперіодичної константи числового типу Запускається з обробки Проба процедура Виконати ()

перем всегоКонстант, флагВивода, ин, ідеї ОчістітьОкноСообщеній ()

// флагВивода прийме значення 1, якщо буде виявлена

/ / Неперіодична константа числового типу флагВивода = 0

всегоКонстант = МетаданниеКонстанта ()

ін = 1 / / Номер константи поки (ін <= всегоКонстант) і (флагВивода = 0) цикл

якщо (МетаданниеКонстанта (ін) Періодичний = 0) і (МетаданниеКонстанта (ін) Тип = Число) тоді

ідеї = МетаданниеКонстанта (ін) Ідентифікатор Повідомити (іден + ” + КонстантаПолучітьАтрібут (іден)) флагВивода = 1

КонецЕсли

ін = ін + 1 / / Не забуваємо перейти до наступної константі конецЦікла / / Для

якщо флагВивода = 0 тоді

Повідомити (В конфігураторі немає неперіодичних констант числового типу”) КонецЕсли

КонецПроцедури / / Виконати

У наведеному коді обєднання умов використано при записі ЛВ двічі: (ін <= всегоКонстант) і (флагВивода = 0)

(МетаданниеКонстанта (ін) Періодичний = 0) і (МетаданниеКонстанта (ін) Тип = Число) Це дозволило нам виключити з процедури оператори Продовжити і Перервати

Джерело: Бартеньев О В 1С: Підприємство: програмування для всіх Базові обєкти та розрахунки на одній дискеті М: Діалог-МІФІ, 2005 464 с

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*