Cyclomatic Complexity Calculator

Calculate McCabe's cyclomatic complexity metric for software code analysis

Calculate Cyclomatic Complexity

Nodes represent program statements or decision points

Edges represent control flow connections between nodes

Usually 1 for single programs (default)

Cyclomatic Complexity Analysis

2
Cyclomatic Complexity (M)
2
Independent Paths
Low Complexity
Simple, well-structured code
McCabe Recommendation
✓ Acceptable

McCabe's Formula

M = E - N + 2×C

Calculation: M = 0 - 0 + 2×1 = 2

Where: M = Cyclomatic Complexity, E = Edges, N = Nodes, C = Components

Example: Collatz Conjecture Program

Program Description

A program that computes the Collatz conjecture sequence with input validation and additional loops.

Control Flow Analysis:

  • Input validation loop
  • Main Collatz sequence loop
  • Final repetition loop
  • Multiple conditional statements

Complexity Calculation

Nodes: 14 (decision points and statements)

Edges: 18 (control flow connections)

Components: 1 (single connected program)

Cyclomatic Complexity: M = 18 - 14 + 2×1 = 6

Complexity Scale

1-10Low Risk
11-20Moderate Risk
21-50High Risk
50+Very High Risk

McCabe originally recommended splitting modules when complexity reaches 10.

Control Flow Elements

Nodes (N)

Program statements, conditions, function calls

Edges (E)

Control flow paths between nodes

Components (C)

Connected subgraphs (usually 1)

Common Patterns

  • • If statement: +1
  • • Loop: +1
  • • Switch case: +1 per case
  • • Try-catch: +1

Understanding Cyclomatic Complexity

What is Cyclomatic Complexity?

Cyclomatic complexity is a software metric developed by Thomas McCabe in 1976 that measures the complexity of a program by quantifying the number of linearly independent paths through the program's source code.

Why Does It Matter?

  • Code Quality: Higher complexity indicates harder-to-maintain code
  • Testing: More paths require more test cases
  • Bug Risk: Complex code is more prone to errors
  • Refactoring: Identifies code that needs simplification

McCabe's Formula

M = E - N + 2×C
Cyclomatic Complexity Formula

Control Flow Graph

Represents program structure as nodes (statements) connected by edges (control flow)

Independent Paths

Each path through the program that introduces new edges not covered by previous paths

Practical Usage

Set complexity limits in code reviews and automated quality checks