← Назад к вопросам
Избавиться от условного оператора Если
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 - А может быть полезно для оптимизации производительности или уменьшения сложности кода в высоконагруженных системах.