1

以下の疑似コードの Cyclomatic Complexity は「4」です。

Read A
Read B
IF A > 0 THEN
     IF B  = 0 THEN
    Print “No values”
     ELSE
    Print B
    IF A > 21 THEN
        Print A
    ENDIF
     ENDIF
ENDIF

どのように数えますか?条件数+1って聞いたけど?それらのelseステートメントを数えますか?よくわかりません。

編集: ケース 2: 次の場合:

IF (x < y)
statment 1

IF (x < z)
statemnt 2

循環的複雑度はどうなりますか? 2? または3?

4

1 に答える 1

2

No. メインフロー + 3 x ' If's = 4

ウィキから:

ソース コードのセクションの循環的複雑度は、ソース コード内の線形に独立したパスの数です。たとえば、ソース コードに IF ステートメントや FOR ループなどの決定ポイントが含まれていない場合、複雑度は 1 になります。これは、コード内のパスが 1 つしかないためです。

コードに 1 つの条件を含む 1 つの IF ステートメントがある場合、コードには 2 つのパスが存在します。1 つのパスでは IF ステートメントが TRUE として評価され、もう 1 つのパスでは IF ステートメントが FALSE として評価されます。

于 2011-07-13T23:56:36.163 に答える