Большое количество вложенных ifов требуют укорачивания

196
29 апреля 2018, 19:47

Имеется кусок кода:

if (Score[0] == 0)
            {
                Score[0] = c9;
                if (Score[1] == 0)
                {
                    Score[1] = c9;
                    if (Score[2] == 0)
                    {
                        Score[2] = c9;
                        if (Score[3] == 0)
                        {
                            Score[3] = c9;
                            if (Score[4] == 0)
                            {
                                Score[4] = c9;
                                if (Score[5] != 0) Score[5] -= 1;
                            }
                            else Score[4] -= 1;
                        }
                        else Score[3] -= 1;
                    }
                    else Score[2] -= 1;
                }
                else Score[1] -= 1;
            }
            else Score[0] -= 1;

Можно ли его укоротить? Мне ничего в голову не пришло.

с9 - константа

Answer 1

Логика для Score[5] немного портит дело, но вот:

int i;
for (i = 0; i < 5; i++) {
  if (Score[i] == 0) {
    Score[i] = c9;
  } else {
    Score[i] -= 1;
    break;
  }
}
if (i == 5 && Score[5] != 0)
  Score[5] -= 1;
READ ALSO
Не удалось выполнить задачу GenerateResource

Не удалось выполнить задачу GenerateResource

Пытаюсь запустить/собрать WPF приложение, которое находится вместе сnet core приложением в одном решении

504
Наследование в entity framework

Наследование в entity framework

Работаю через Entity Framework Code First Есть две сущности:

180
Нормально ли с точки зрения чистоты кода наличие большого количества хелперов?

Нормально ли с точки зрения чистоты кода наличие большого количества хелперов?

Под хелпером понимается static класс с набором static методов, объединенных между собой какой-то некой тематикойНепример хелпер по работе с файлами,...

231
Как расшифровать RijndaelManaged

Как расшифровать RijndaelManaged

Подскажите как расшифровать данные после их шифрование?!

211