← Назад к вопросам

Избавиться от условного оператора Если

1.0 Junior🔥 121 комментариев
#Стандарты разработки

Условие

Дан код:

А = 1;
Если А = 1 Тогда
    Б = 1;
Иначе
    Б = 2;
КонецЕсли;

Перепишите этот код без использования условного оператора "Если".

Подсказка

Используйте математические операции.

Решение

А = 1;
Б = 2 - А;

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Решение: Избавиться от условного оператора

А = 1;
Б = 2 - А;

Объяснение

Исходный код:

  • Если А = 1, то Б = 1
  • Иначе Б = 2

Преобразованный код:

  • Вычисляем Б = 2 - А
  • При А = 1: Б = 2 - 1 = 1
  • При А = 2: Б = 2 - 2 = 0
  • При А = 0: Б = 2 - 0 = 2

Если требуется именно такое поведение (А = 1 → Б = 1, А ≠ 1 → Б = 2):

А = 1;
Б = 1 + (Цел(А <> 1));

Альтернативные способы

Через таблицу соответствия:

Таблица = Новый Соответствие;
Таблица[1] = 1;
Таблица[2] = 2;
А = 1;
Б = Таблица[А];

Через функцию:

Функция ВычислитьБ(А)
    Возврат 2 - А;
КонецФункции

А = 1;
Б = ВычислитьБ(А);

Практический совет

В реальном коде для такой логики лучше использовать явный условный оператор, так как это повышает читаемость:

А = 1;
Если А = 1 Тогда
    Б = 1;
Иначе
    Б = 2;
КонецЕсли;

Однако математическое решение Б = 2 - А может быть полезно для оптимизации производительности или уменьшения сложности кода в высоконагруженных системах.

Избавиться от условного оператора Если | PrepBro