使用大量if语句的缺点

Chr*_*ris 11 c# c++ java

除了代码可读性之外,为什么使用大量的if语句会很糟糕?

Cra*_*rks 13

您编写的每个if/else都会增加您必须测试的代码路径数.


Chu*_*dad 11

如果你有一个接一个的if语句,那么switch case语句会更有用.至少它对每个可能的inupt都有一个固定的响应时间,因为它不需要通过所有if语句.

许多if(和else)语句通常表示

a)违反单一责任原则

b)需要重构为战略设计模式

  • `switch`语句不一定具有固定的响应时间(至少不在C#中).话虽如此,担心这种超微优化对于几乎所有人来说都是浪费时间. (5认同)
  • @LukeH:我实际上花了大部分时间来追踪我的应用程序中的分支处罚并消除它们或用无分支算法替换它们,以便将250ms的故障降低到50ms. (2认同)