← Назад к вопросам
Избавиться от условного оператора Если
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 - А может быть полезно для оптимизации производительности или уменьшения сложности кода в высоконагруженных системах.
Похожие вопросы
- Обработчик ПередЗаписью с проверкой поля
- Суммирование количества строк табличной части
- Запрос на выборку товаров с остатком больше нуля
- Сортировка массива методом пузырька
- Получение списка всех открытых окон
- Запрос: выбор номенклатур с ценами, оканчивающимися на 5
- Сумма и разность квадратов чисел
- Удаление строк из таблицы значений в цикле
- Поменять местами значения двух переменных без использования третьей
- Добавление строки в табличную часть документа
- Функция определения високосного года
- Сравнение версий программы
- Декартово произведение таблиц в запросе
- Отчёт по прибыли на СКД
- Вывод всех дат в заданном интервале
- Подсчёт кораблей в игре Морской бой
- Вычисление количества дней товаров на складе
- Настройка прав доступа для групп пользователей
- Запрос суммы продаж по контрагентам за 30 дней
- Срез последних без использования виртуальной таблицы