セキュリティ/静的解析/Sonar/複雑度計算式
提供: 初心者エンジニアの簡易メモ
サイクロマティック複雑度サンプルコード(循環的複雑度
- returnのないfunctionは初期値1
- returnのあるfunctionは初期値0
- ifで+1
- ifのor,andごとに+1
- switchのcaseごとに+1
- forで+1
function exmaple() { if ($hoge || $fuga) { } switch ($hoge) { case 1: break; case 2: break; } foreach ($foge as $value) { } return 1; }
2+2+1-1で4
ifについて
if ($hoge) {} if ($fuga) {}
これは+2
if ($hoge) { } elseif ($fuga) { }
これは+2
if ($hoge) { } else { }
これは+1