C/C++ 中怎样优雅的写多判断 if 语句?

如题所述

第1个回答  2018-03-21

优雅用在此处不是很好理解,要先了解if -else


为什么我们写的代码是if -else?

程序员一定经历过这样的场景:刚开始编写自己的代码是非常简洁、清晰的逻辑和功能流线,而不是一个if - else,而是使用快速变化的代码逻辑和完善的业务:例如需要键入引用和值判断。我将告诉你这个物体是否为空;不同的类型执行不同的进程。出生的具体实现不断添加如果其他——处理,渐渐地,代码变得越来越大,功能越来越多,文件行快速突破数千行,维护难度越来越大,到后期达到了一个难以维护的状态。

事实上,回过头看自己的代码,编写非if - else在两个场景之外:异常逻辑处理和不同的状态处理。两者之间的主要区别是异常逻辑处理表明只有一个分支是正常的,所有分支都是正常的进程。

代码if - else代码的缺点是什么?

最大的问题是代码很复杂,维护也很糟糕,很容易导致bug

如果用- else表示If分支和else分支的值是相等的,但大多数情况下是不相等的,并且很容易理解和理解困难。

有什么好的方法来优化吗?如何重构?

您重构if - else时,原则是在最外层保持正常的进程代码。这意味着,如果您可以编写一个if - else语句,那么您必须尽量使主干代码尽可能正常,以避免嵌套太深。实现的方法是:减少嵌套,删除临时变量,条件返回判断,并合并条件表达式等。

相似回答