作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。
McCabe 度量法,也被称为循环复杂度(Cyclomatic Complexity),是由 Thomas J. McCabe, Sr. 在 1976 年提出的一种软件程序复杂度的量度方法。循环复杂度是一种量化代码复杂度的方式,主要用于衡量一个程序单元(如函数、方法、模块等)的复杂度。它通过测量程序中线性独立路径的数量来实现,这个数量由程序的控制流图中的边、节点和连通分量决定。
循环复杂度(V(G))可以通过以下公式计算: [ V(G) = E - N + 2P ]
假设有一个包含三个 if
语句的函数(没有嵌套),控制流图将有四个节点(包括起点和终点)和五条边。如果这个函数是单独一个模块,那么(P = 1),所以循环复杂度为 (V(G) = 5 - 4 + 2*1 = 3)。