Static Path Count 静态分支数(函数级)
静态分支数过高则认为代码过于复杂,可读性不高。
-
没有任何分支:
Paths是1
If else分支计算:
- if-else两个paths,即使else是Do nothing也是2,Note: Path和 if的条件无关,if(A&&B&&C),path也是2
- if-else …… if-else 是2*2 path
- if{if-else}-else 是2+1 path
- if-else if-else (此处else if 是一个整体)path是3,和switch case的算法有点类似
- result = a > b ? a : b; path 是0
- if{ result = a > b ? a : b; }-else path 是2
-
Switch Case分支计算:
- Switch case 的path 由case数决定
- Switch(x){case 1:; case 2:; default:;} 是3
- Switch(x){case 1:{if-else} case 2: default:}是2+1+1
-
For循环分支计算:
- For 循环path是循环主体+1
- For(i=0;i<n;i++){if-else} path是2+1