Перейти к содержанию

Несколько вложенных и последовательно идущих "Если"

Вместо нескольких вложенных и последовательных "Если" лучше использовать лучше использовать упрощение в одно или несколько условий. Например, использовать одно "Если" с объединением условий через "И" или использовать другой рефакторинг сложного условия. Часто бывает полезным выделить специальную переменную с типом Булево с хорошо понятным именем, присвоив ей результаты всех или части условий.

Также рекомендуем обратить внимание на правила упрощения сложных условий.

Объединение условий или другие рефакторинги позволяет упростить код. Код становится легче читать и сопровождать. Также после объединения условий часто получается упростить условия или переставить местами условия для улучшения производительности.

Например, неточный код

Если Условие1 Тогда
  Если Условие2 Тогда
    //какой-то код
  КонецЕсли;
КонецЕсли;

более правильный код

Если Условие1 И Условие2 Тогда
    //какой-то код
  КонецЕсли;
КонецЕсли;

или

РегламентноеЗаданиеУспешноЗавершено = Условие1 И Условие2;
Если РегламентноеЗаданиеУспешноЗавершено Тогда
    //какой-то код
  КонецЕсли;
КонецЕсли;

или еще неточный код

Если МетодВыполненУспешно() Тогда
  Если ДругоеУсловиеЗадано Тогда
    //какой-то код
  КонецЕсли;
КонецЕсли;

более правильный код с перестановкой условий местами для производительности.

Если ДругоеУсловиеЗадано И МетодВыполненУспешно() Тогда
    //какой-то код
  КонецЕсли;
КонецЕсли;

См. также

Экранирование кода

// sonar:NoNestedConditionsWithoutElse:off
// sonar:NoNestedConditionsWithoutElse:on