圈复杂度过大影响了程序的运行效率,应该保证每个方法的全复杂度空值在小于5的范围。

本例子纯属为了测试每个函数的全复杂度为多大。

public class MaxComplexity {public static void main(String[] args) {int score = 90;complexityIfElse(score);complexitySwitch(score);}private static void printArray(int[] array) {for (int i = 0; i < array.length; i++) {System.out.println(array[i] + " ");}System.out.println();}private static void printArray2(int[] array) {for (int value : array) {System.out.println(value + " ");}System.out.println();}private static void ifValue(int value) {if (value == 90) {System.out.println("score 等于 90");} else {System.out.println("score 不等于 90");}}private static void isValue(int value) {int flag = value == 90 ? 1 : 0;System.out.println(flag);}/*** if - else if -else 的最大圈复杂度测试* 本函数的圈复杂度为8,* @param score*/private static void complexityIfElse(int score) {if (score < 60) {System.out.println("分数低于60分,不及格");} else if (score < 70) {System.out.println("分数在[60,70)之间,及格,良");} else if (score < 80 && score >= 70) {System.out.println("分数在[70,80)之间,良");} else if (score < 90 && score >= 80) {System.out.println("分数在[80,90),优秀");} else {System.out.println("分数在[90, 100]之间,非常优秀");}}/*** switch 的最大圈复杂度测试* 此函数的圈复杂度为6.* @param score*/private static void complexitySwitch(int score) {switch (score) {case (60):System.out.println("分数低于60分,不及格");break;case (70):System.out.println("分数在[60,70)之间,及格,良");break;case (80):System.out.println("分数在[70,80)之间,良");break;case (90):System.out.println("分数在[80,90),优秀");break;default:System.out.println("分数在[90, 100]之间,非常优秀");}}
}

圈复杂度降低方法:

抽取方法:将一段可以组织在一起实现简单功能的代码抽取为方法,独立出来。将可以并列的条件应用map替代。

②将多个条件分支中都会执行的代码提取出来最后执行。

③将简单的条件判断转换为三元预算符(if-else --> ? :)。

④提炼逻辑与算法,想一个新的算法。

⑤将多个类似条件判断为一个方法,根据不同参数判断返回结果。例子:多处string非空判断。

⑥尽量少用switch case , && , || , if 等判断运算。

java 圈复杂度相关推荐

  1. java 圈复杂度_详解圈复杂度

    详解圈复杂度 圈复杂度概念 圈复杂度(Cyclomatic complexity,简写CC)也称为条件复杂度,是一种代码复杂度的衡量标准.由托马斯·J·麦凯布(Thomas J. McCabe, Sr ...

  2. java 圈复杂度_圈复杂度和代码质量优化(附带示例代码纠正代码质量)

    什么是圈复杂度? --------------------------------------- 圈复杂度(Cyclomatic Complexity)是衡量计算机程序复杂程度的一种措施.它根据程序从 ...

  3. java 圈复杂度_追求代码质量: 监视圈复杂度

    每位开发人员对代码质量的含义都有着自己的看法,并且大多数人对如何查找编写欠佳的代码也有自己的想法.甚至术语代码味道(code smell) 也已进入大众词汇表,成为描述代码需要改进的一种方式. 圈什么 ...

  4. java 圈复杂度_关于Java:降低Switch语句的循环复杂度-Sonar

    我想减少开关盒的圈复杂度 我的代码是: public String getCalenderName() { switch (type) { case COUNTRY: return country = ...

  5. java 圈复杂度 工具_java sourcemonitor圈复杂度计算

    sourcemonitor集成至eclipse的方法: 1.安装sourcemonitor工具 2.run New_Configration菜单 -> External Tools Config ...

  6. java 圈复杂度_控制圈复杂度的9种重构技术

    一个软件总是为解决某种特定的需求而产生,时代在发展,客户的业务也在发生变化.有的需求相对稳定一些,有的需求变化的比较剧烈,还有的需求已经消失了,或者转化成了别的需求.在这种情况下,软件必须相应的改变. ...

  7. java 圈复杂度_降低java方法的圈复杂度

    我有以下方法: private void setClientAdditionalInfo(Map map, Client client, User user) { Map additionalInfo ...

  8. 【Java后台开发规范】--- 圈复杂度

    文章目录 前言 其他类型的规范 圈复杂度 提炼方法 if.else 卫语句 去else 策略模式 switch 循环嵌套 其他建议 前言 做Java开发的,大多数可能都有看过阿里的Java后台开发手册 ...

  9. java能测圈复杂度_[Java教程]圈复杂度

    [Java教程]圈复杂度 0 2015-12-02 13:00:42 Cyclomatic Complexity 1. 概念 a. 圈复杂度是一种衡量代码复杂程度的标准. b. 圈复杂度高的害处: 圈 ...

最新文章

  1. 《新一代SDN——VMware NSX 网络原理与实践》——导读
  2. 【OpenCV学习】抠图
  3. Hhadoop环境部署
  4. activity中fragment 返回键不退出_分享一波阿里Android客户端面经,我竟连这都答不上来?...
  5. Deployment详解
  6. TF实战:(Mask R-CNN原理介绍与代码实现)-Chapter-8
  7. 第三次学JAVA再学不好就吃翔(part38)--抽象类与接口的区别
  8. 怎样判断一个领导是否值得追随呢?
  9. cad命令栏还原默认_CAD十五个必学的命令 掌握后能走天下了
  10. Oracle 分析函数的使用(主要是rollup用法)
  11. Unable to instantiate service com.baidu.android.pushservice.PushService: java.lang.ClassNotFoundExc
  12. 浪潮服务器开启虚拟化功能,浪潮服务器-虚拟化解决方案.ppt
  13. 一文带你认识HTML
  14. MySQL错误Got error -1 from storage engine
  15. 使用Ruby搭建Redis 集群
  16. AUTOCAD——快速提取边界线、CAD绘制单双开门
  17. deepfacelab应用报错原因和解决办法
  18. MATLAB 动态规划
  19. Cookie存储购物车
  20. win10下安装Centos7

热门文章

  1. idea搜不到子目录下的配置怎么解决
  2. golang坑之 'godoc' 不是内部或外部命令,...
  3. OpenAI的创立和发展历程
  4. 12、Pytest之@pytest.mark.自定义标签使用
  5. 罗克韦尔自动化宣布高管变动
  6. 开启Fluter基础之旅四-------表格、动画、手势
  7. 浪潮存储中标中国天眼;华为发布离网去油综合供能全系列解决方案;罗克韦尔自动化推出新品牌 | 全球TMT...
  8. 163邮箱免费账号注册,163邮箱申请能免费注册吗?
  9. Reactor3 Flux.create与Flux.push正确打开方式
  10. Unity 动画系统:Animator