Безусловное прерывание/продолжение цикла
В теле цикла не рекомендуется использовать операторы, прерывающие выполнение цикла (Возврат
, Продолжить
, Прервать
, Перейти
) без условия.
В случае безусловного использования этих операторов циклы - или будут бесконечными - или выполнятся всего один раз. А в этом случае цикл лучше исключить.
Подозрительный код
Пока Счетчик >= 0 Цикл
Сообщить(Дни[Счетчик]);
Продолжить;
КонецЦикла;
Правильный код
Пока Счетчик >= 0 Цикл
Сообщить(Дни[Счетчик]);
Если МоеУсловие() Тогда
Счетчик = Счетчик + 1;
Продолжить;
КонецЕсли;
КонецЦикла;
См. также
- Согласно Common Weakness Enumeration, потенциальные ошибки, найденные с помощью этой диагностики, классифицируются как CWE-670
- PVSStudio V612. An unconditional 'break/continue/return/goto' within a loop.
Экранирование кода
// sonar:UnconditionalBreakingLoop:off
// sonar:UnconditionalBreakingLoop:on