Программисты-новички часто теряются, начиная использовать на практике синтаксические конструкции языка. Возьмем, к примеру, операторы цикла: мне известно 3 способа выхода из цикла, а Вам!?
1. С помощью оператора Прервать
Оператор Прервать
используется тогда, когда больше нет необходимости в проверке условия цикла и повторении итераций.
//поиск строкового значения в списке без учета регистра Список.ДобавитьЗначение(1, "Один"); Список.ДобавитьЗначение(2, "Два"); Список.ДобавитьЗначение(3, "Три"); Для Инд = 1 По Список.РазмерСписка() Цикл Если нрег(Список.ПолучитьЗначение(Инд)) = "два" Тогда Сообщить(Инд); Прервать; КонецЕсли; КонецЦикла;
2. С помощью оператора Возврат
Оператор Возврат используется в процедурах и функциях для их досрочного завершения. Почему бы не написать отдельную функцию, которая реализует цикл, а оператор Возврат будет использоваться одновременно для прекращения цикла, завершения функции, а также возврата найденного значения в точку вызова!?
Функция НайтиВСписке(Список, Значение) Для Инд = 1 По Список.РазмерСписка() Цикл Если нрег(Список.ПолучитьЗначение(Инд)) = нрег(Значение) Тогда Возврат Инд; КонецЕсли; КонецЦикла; КонецФункции //НайтиВСписке(Список) Позиция = НайтиВСписке(Список, "два"); //Результат: // 2
3. С помощью оператора Перейти
Оператор Перейти
прекрасно подходит для досрочного завершения вложенных циклов, особенно с большим уровнем вложенности.