java 圈复杂度
圈复杂度过大影响了程序的运行效率,应该保证每个方法的全复杂度空值在小于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 圈复杂度相关推荐
- java 圈复杂度_详解圈复杂度
详解圈复杂度 圈复杂度概念 圈复杂度(Cyclomatic complexity,简写CC)也称为条件复杂度,是一种代码复杂度的衡量标准.由托马斯·J·麦凯布(Thomas J. McCabe, Sr ...
- java 圈复杂度_圈复杂度和代码质量优化(附带示例代码纠正代码质量)
什么是圈复杂度? --------------------------------------- 圈复杂度(Cyclomatic Complexity)是衡量计算机程序复杂程度的一种措施.它根据程序从 ...
- java 圈复杂度_追求代码质量: 监视圈复杂度
每位开发人员对代码质量的含义都有着自己的看法,并且大多数人对如何查找编写欠佳的代码也有自己的想法.甚至术语代码味道(code smell) 也已进入大众词汇表,成为描述代码需要改进的一种方式. 圈什么 ...
- java 圈复杂度_关于Java:降低Switch语句的循环复杂度-Sonar
我想减少开关盒的圈复杂度 我的代码是: public String getCalenderName() { switch (type) { case COUNTRY: return country = ...
- java 圈复杂度 工具_java sourcemonitor圈复杂度计算
sourcemonitor集成至eclipse的方法: 1.安装sourcemonitor工具 2.run New_Configration菜单 -> External Tools Config ...
- java 圈复杂度_控制圈复杂度的9种重构技术
一个软件总是为解决某种特定的需求而产生,时代在发展,客户的业务也在发生变化.有的需求相对稳定一些,有的需求变化的比较剧烈,还有的需求已经消失了,或者转化成了别的需求.在这种情况下,软件必须相应的改变. ...
- java 圈复杂度_降低java方法的圈复杂度
我有以下方法: private void setClientAdditionalInfo(Map map, Client client, User user) { Map additionalInfo ...
- 【Java后台开发规范】--- 圈复杂度
文章目录 前言 其他类型的规范 圈复杂度 提炼方法 if.else 卫语句 去else 策略模式 switch 循环嵌套 其他建议 前言 做Java开发的,大多数可能都有看过阿里的Java后台开发手册 ...
- java能测圈复杂度_[Java教程]圈复杂度
[Java教程]圈复杂度 0 2015-12-02 13:00:42 Cyclomatic Complexity 1. 概念 a. 圈复杂度是一种衡量代码复杂程度的标准. b. 圈复杂度高的害处: 圈 ...
最新文章
- 《新一代SDN——VMware NSX 网络原理与实践》——导读
- 【OpenCV学习】抠图
- Hhadoop环境部署
- activity中fragment 返回键不退出_分享一波阿里Android客户端面经,我竟连这都答不上来?...
- Deployment详解
- TF实战:(Mask R-CNN原理介绍与代码实现)-Chapter-8
- 第三次学JAVA再学不好就吃翔(part38)--抽象类与接口的区别
- 怎样判断一个领导是否值得追随呢?
- cad命令栏还原默认_CAD十五个必学的命令 掌握后能走天下了
- Oracle 分析函数的使用(主要是rollup用法)
- Unable to instantiate service com.baidu.android.pushservice.PushService: java.lang.ClassNotFoundExc
- 浪潮服务器开启虚拟化功能,浪潮服务器-虚拟化解决方案.ppt
- 一文带你认识HTML
- MySQL错误Got error -1 from storage engine
- 使用Ruby搭建Redis 集群
- AUTOCAD——快速提取边界线、CAD绘制单双开门
- deepfacelab应用报错原因和解决办法
- MATLAB 动态规划
- Cookie存储购物车
- win10下安装Centos7
热门文章
- idea搜不到子目录下的配置怎么解决
- golang坑之 'godoc' 不是内部或外部命令,...
- OpenAI的创立和发展历程
- 12、Pytest之@pytest.mark.自定义标签使用
- 罗克韦尔自动化宣布高管变动
- 开启Fluter基础之旅四-------表格、动画、手势
- 浪潮存储中标中国天眼;华为发布离网去油综合供能全系列解决方案;罗克韦尔自动化推出新品牌 | 全球TMT...
- 163邮箱免费账号注册,163邮箱申请能免费注册吗?
- Reactor3 Flux.create与Flux.push正确打开方式
- Unity 动画系统:Animator