使用Source Monitor检测Java代码的环复杂度-阿里云开发者社区

开发者社区> -开发者助手-> 正文

使用Source Monitor检测Java代码的环复杂度

简介: 使用Source Monitor检测Java代码的环复杂度
+关注继续查看

Today I found a useful free software called “SourceMonitor” which can help to calculate and monitor the java code ( and other programming language like C++, C# etc ) complexity.

image.pngFor the definition and how to calculate cyclomatic complexity itself, please refer to detail in wikipedia.


In order to demonstrate the usage of this software, I use a very simple java class below for example:

package test;
import java.util.ArrayList;
public class monthTool {
 static ArrayList<String> monthCollection = new ArrayList<String>();
 public static void main(String[] args) {
  monthTool tool = new monthTool();
  tool.printV1(1);
  tool.printV2(2);
  tool.printV1(0);
  tool.printV2(-1);
  tool.printV3(3);
  tool.printV3(13);
 }
 public monthTool(){
  monthCollection.add("Invalid");
  monthCollection.add("January");
  monthCollection.add("Febrary");
  monthCollection.add("March");
  monthCollection.add("April");
  monthCollection.add("May");
  monthCollection.add("June");
  monthCollection.add("July");
  monthCollection.add("August");
  monthCollection.add("September");
  monthCollection.add("October");
  monthCollection.add("November");
  monthCollection.add("December");
 }
 public void printV1(int month){
  System.out.println("Month is: " + getMonthNameV1(month));
 }
 public void printV2(int month){
  if( month >= 1 && month <= 12)
   System.out.println("Month is: " + getMonthNameV2(month));
  else
   System.out.println("Please specify a valid month");
 }
 public void printV3(int month) {
  System.out.println("Month is: " + getMonthNameV3(month));
 }
 public String getMonthNameV2(int month){
  if( month == 1)
   return "January";
  else if( month == 2)
   return "Febrary";
  else if( month == 3)
   return "March";
  else if( month == 4)
   return "April";
  else if( month == 5)
   return "May";
  else if( month == 6)
   return "June";
  else if( month == 7)
   return "July";
  else if( month == 8)
   return "August";
  else if( month == 9)
   return "September";
  else if( month == 10)
   return "October";
  else if( month == 11)
   return "November";
  else if( month == 12)
   return "December";
  else
   return "Invalid";
 }
 public String getMonthNameV1(int month){
  switch (month){
  case 1:
   return "January";
  case 2:
   return "Febrary";
  case 3:
   return "March";
  case 4:
   return "April";
  case 5:
   return "May";
  case 6:
   return "June";
  case 7:
   return "July";
  case 8:
   return "August";
  case 9:
   return "September";
  case 10:
   return "October";
  case 11:
   return "November";
  case 12:
   return "December";
  default:
   return "Invalid";
  }
 }
 public String getMonthNameV3(int month){
  try {
   return monthCollection.get(month);
  }
  catch (java.lang.IndexOutOfBoundsException e){
   return "Invalid";
  }
 }
}

It has three different ways to convert an integer into a month name if possible, or else the string “Invalid” is returned.


(1) Create a new project:image.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.png


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
项目管理实践教程二、源代码控制【Source Control Using VisualSVN Server and TortoiseSVN】
在第一篇文章 项目管理实践教程一、工欲善其事,必先利其器【Basic Tools】发布后,根据大家的回复,我需要向大家说明几个问题: 1.为什么要用VisualSVN Server,而不用Subversion? 回答: 因为如果直接使用Subversion,那么在Windows 系统上,要想让...
830 0
怎么设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程
8478 0
【Spring注解驱动开发】使用@PropertySource加载配置文件,我只看这一篇!!
很多小伙伴都在问:冰河,你的Spring专题更新完了吗?怎么感觉像是写了一半啊?我:没有更新完呀,整个专题预计会有70多篇。那怎么更新了一半就去写别的了呢?那是因为有很多其他的小伙伴在后台留言说:急需学习一些其他的技术,所以,临时调整的。放心,Spring专题会持续更新的!这不,今天,我们就继续更新Spring专题。不出意外的话,会一直持续更新完!!
13 0
Java架构师教你写代码(一) - 使用静态工厂方法(简单工厂)替代构造器(上)
Java架构师教你写代码(一) - 使用静态工厂方法(简单工厂)替代构造器(上)
13 0
sourceinsight使用技巧
sourceinsight使用技巧 1 sourceinsight screen font 的默认字体是Verdana的,它是一直变宽字体。在Document style中可以将字体改为定宽的Courier 2 勾掉indent Open Brace和Indent Close Brace的效果: 继上一段,在相对缩进行里, 如果输入"{"或"}", 则自动和上一行列对齐 3 今天把一个用sourceinsight排版整齐的C文件,偶然用VC打开一看,全乱了。
1263 0
2450
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载