个人学习笔记, 网上摘抄.
计算公式1:V(G)=e-n+2p。其中,
e表示控制流图中边的数量,
n表示控制流图中节点的数量,
p图的连接组件数目(图的组件数是相连节点的最大集合)。因为控制流图都是连通的,所以p为1.
![](https://icenterapi.zte.com.cn/group1/M00/24/F6/Ch4MdFv-BriAOzj3AAAOLCyTvCU549.jpg)
计算公式2:
V(G)=区域数=判定节点数+1。
其实,圈复杂度的计算还有更直观的方法,
因为圈复杂度所反映的是“判定条件”的数量,
所以圈复杂度实际上就是等于判定节点的数量再加上1,也即控制流图的区域数。
对于多分支的CASE结构或IF-ELSEIF-ELSE结构,
统计判定节点的个数时需要特别注意一点,要求必须统计全部实际的判定节点数,也即每个ELSEIF语句,
以及每个CASE语句,都应该算为一个判定节点。