Cyclomatic complexity

關於 Cyclomatic complexity 一詞可參考 Wikipedia 上的解說。

中譯名稱是「循環複雜度」或者又稱為「迴圈複雜度」。主要是用來描述一個程式「條件分支」的複雜度,因為愈單純的 If-condition 愈容易讀懂,除錯時也較好發現問題所在。所以複雜度的數值,愈低愈好。在下面兩個情形複雜度的值都會加一:

  • if / while
  • switch-case

下列程式的 Cyclomatic complexity 分數是:2

foo()
{
  if (condition)
    printf ("hello");
}

下列程式的 Cyclomatic complexity 分數是:3

foo()
{
  if (condition-X || condition-Y)
    printf ("hello");
}

Leave a Comment