循環的複雑度(Cyclomatic Complexity)は、クラスの本文に含まれる (&&, ||) 演算子と (if, while, do, for, ?:, catch, switch, case, return, throw) 文の数に、クラスのコンストラクタ、メソッド(アクセッサを除く)、クラス初期化子、インスタンス初期化子の数を加えたもので測定される。 メソッドの末尾にある return 文は、数には加えられない。
クラスの循環的複雑度が高くても、うまい具合に複雑度がすべてのメソッドに分散している場合もある。 それでも多くの場合、複雑すぎるクラスは 単一責任の原則 に違反するものであり、リファクタリングを行って、いくつかのクラスに分割されるべきである。