我将 SonarQube 用于 Java 项目,但复杂度计算对我来说并不清楚。以下示例的复杂度值为 3:
public boolean even(int i) {
if (i % 2 == 0) {
return true;
}
return false;
}
根据用户指南,复杂度计算如下:“它是圈复杂度,也称为 McCabe 度量。每当一个函数的控制流分裂时,复杂度计数器就会加一。每个函数的最小复杂度为 1。” 在详细描述中提到,return 语句将复杂度值加一(如果它不是方法中的最后一条语句)。我不明白为什么 return 语句会拆分控制流。在我看来,控制流中的每个 return 语句之后只有一种可能的方式。