facebook twitter hatena line google mixi email

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