案例 计算方法 有一个简单的计算方法,圈复杂度实际上就是等于判定节点的数量再加上1。向上面提到的:if else 、switch case 、 for循环、三元运算符,&&,|| 等等,都属于一个判定节点,例如下面的代码:
publicvoidget(param){int result =1;if(param >0){
result--;}for(let i =0; i <10; i++){
result +=Math.random();}switch(parseInt(result)){case1:
result +=20;break;case2:
result +=30;break;default:
result +=10;break;}return result >20? result : result;
度量插件 IDEA可以安装MetricsReloaded插件
改进方案 改进方案的目的是为了提高代码质量,而不是单单为了降低圈复杂度,一切以提高代码质量为原则。
替换算法
if(str =='China'){
result ='中国人';}elseif(str =='US'){
result ='美国人';}elseif(str =='France'){
result ='法国人';}//替换成下面
people =['China'=>'中国人','US'=>'美国人','France'=>'法国人'];
result = people[str];