如何计算圈复杂度?

How is cyclomatic complexity counted?

我正在阅读 Kent Beck 的“TDD by Example”,我不明白为什么他的程序的圈复杂度是小数。

In Wikipedia 复杂度定义为 M = E − N + 2P 其中 E、N 和 P 是整数。

我认为这是每个方法的独立圈复杂度的平均值 (M = E - N + 2)。我不会自己计算,但是

  • 所示的大多数方法在练习的那个点都没有条件(Kent 尽可能消除它们),因此它们的圈复杂度为 1
  • Bank.rate 确实有一个 if(第 63 页)

所以平均值略高于 1 似乎是合理的。