循環複雜度(Cyclomaticcomplexity)也稱為條件複雜度,是一種軟體度量,是由老托馬斯·J·麥凱布(英語:ThomasJ.McCabe,Sr.)在1976年提出,用來表示程式的複雜度,其符號為VG或是M。
循環複雜度是由程式的控制流圖(英語:controlflowgraph)來計算:有向圖的節點對應程式中個別的程式碼,而若一個程式執行後會立刻執行另一程式碼,會有邊連結二程式碼對應的節點。圈複雜度可套用在程式的子程式、模組、方法或類別。
麥凱布首先提出一種稱為“基礎路徑測試”(BasisPathTesting)的軟體測試方式,是測試程式中的每一線性獨立路徑,此情形的測試用例個數即為程式的循環複雜度。
“循環複雜度”的名稱有時會讓人誤解,因為此複雜度不只計算程式中的循環(循環)個數。循環複雜度是指程式的控制流圖中,若將結束點到啟始點再增加一個邊時,控制流圖中的圈(幾個邊形成封閉路徑)的個數。