Сколько комбинаций в этом, если оператор

Хорошо - у меня есть кто-то, кого я работаю с тем, кто записал что-то как это

if()
   if()
      if()
         if()
         if()

Мне не нравится это!!

Если существует десять различных булевых флагов, сколько комбинации там?

10 факториалов?

Я пытаюсь объяснить, почему это плохо

5
задан sth 6 February 2010 в 07:18
поделиться

4 ответа

Два состояния на флаг и 10 флагов 2 ^ 10 = 1024

2
ответ дан 14 December 2019 в 13:36
поделиться

Наиболее хорошими статическими кодовыми анализаторами имеют максимальный уровень отступа на эту точку зрения. Становится очень трудно обрабатывать все логические случаи с таким высоким уровнем вложенности.

Это типичная ошибка новичков проверки всех условий ошибок в одном большом количестве функции?

Если так, вы можете получить автора кода, чтобы изменить его в последовательность, если утверждения а не эта сильно вложенная конструкция.

if(error1) {
    /* report error 1 and exit */
}

if(error2) {
    /* report error 2 and exit */
}

if(error3) {
    /* report error 3 and exit */
}

...

делает его намного проще проверить код, а также предоставлять адаптированную информацию о конкретной ошибке, а не в одном универсальном операторе «что-то плохое».

1
ответ дан 14 December 2019 в 13:36
поделиться

Наиболее хорошими статическими анализаторами кода имеют максимальный уровень отступа на эту точку зрения. Становится очень трудно обрабатывать все логические случаи с таким высоким уровнем вложенности.

Это типичная ошибка Newbie проверить все условия ошибок в одном большом количестве большого количества функции?

Если это так, вы можете получить автор кода, чтобы изменить его в последовательность, если а не эта сильно вложенная конструкция.

if(error1) {
    /* report error 1 and exit */
}

if(error2) {
    /* report error 2 and exit */
}

if(error3) {
    /* report error 3 and exit */
}

...

делает его намного проще проверить код, а также для предоставления индивидуальной информации о конкретной ошибке, а не в одном универсальном операторе «что-то плохое».

-121--4950708-

Не более 2-10 = 1024 путей (максимум достигается, если условия полностью независимы)

, имея множество путей в одном методе, называемом высокой сложностью. Эта высокая сложность воздействует на удовольствие и оправданность. Очевидно, что сложные методы более подвержены ошибкам и сложнее для тестирования и обслуживания.

Сложность не обязательно является проблемой: некоторые решения проблем имеют присущую сложность, которая не может быть удалена. Другими словами, некоторые проблемы окончательно сложно найти решения. В этих случаях вы можете уменьшить локальную сложность, расщепляя сложные методы в меньших (это не уменьшает глобальную сложность, очевидно).

В других случаях удалите дополнительную сложность: найдите более простое решение (легко сказать, я знаю); -)

0
ответ дан 14 December 2019 в 13:36
поделиться

2 в 10-м степени = 1024

Я пытаюсь объяснить, почему это плохо

, это может не обязательно быть плохим. Каждое состояние отключает половину случаев. Если вы знаете, вам нужно только сделать что-то, когда первое условие верно, вы уже падаете 512 случаев. Это точка этих проверок.

Однако вы можете переписать его, чтобы лучше выглядеть и более читаемо:

if(c1 && c2 && c3 && c4 && c5)
3
ответ дан 14 December 2019 в 13:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: