Как свернуть множество вложенных if-else без тернарного оператора - C#

Узнай цену своей работы

Формулировка задачи:

Сейчас имеется код такого типа:
if (useUpper) {
            if (useDigits) {
                if (useSymbols) {
                    multiplier = 2.014;
                } else {
                    multiplier = 1.697;
                }
            } else {
                if (useSymbols) {
                    multiplier = 1.712;
                } else {
                    multiplier = 1.47;
                }
            }
        } else {
            if (useDigits) {
                if (useSymbols) {
                    multiplier = 1.792;
                } else {
                    multiplier = 1.409;
                }
            } else {
                if (useSymbols) {
                    multiplier = 1.309;
                } else {
                    multiplier = 1.208;
                }
            }
        }
Кто-нибудь знает, как его можно красиво свернуть без тернарного оператора (ибо будет жутко)

Решение задачи: «Как свернуть множество вложенных if-else без тернарного оператора»

textual
Листинг программы
double[] list = new double[] { 1.208, 1.309, 1.409, 1.792, 1.47, 1.712, 1.697, 2.014 };
int index = ((useUpper ? 1 : 0) << 2) + ((useDigits ? 1 : 0) << 1) + (useSymbols ? 1 : 0);
multiplier = list[index];

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.429 из 5
Похожие ответы