メインコンテンツ

Goto ステートメントの数

goto ステートメント数

説明

このメトリクスは関数内の goto ステートメントの数を測定します。

break および continue ステートメントはカウントされません。

このメトリクスの推奨上限は 0 です。コードを読みやすくするには、コード内での goto ステートメントの使用を避けてください。goto ステートメントの使用を検出するには、MISRA C:2012 Rule 15.1の違反をチェックしてください。

メトリクスに制限を適用するには、Polyspace を使用したコード複雑度メトリクスの計算を参照してください。

すべて展開する

#define SIZE 10
int initialize(int **arr, int loc);
void printString(int *);
void printErrorMessage(void);
void printExecutionMessage(void);


int main()
{
    int *arrayOfStrings[SIZE],len[SIZE],i;
    for ( i = 0; i < SIZE; i++ )
    {
        len[i] = initialize(arrayOfStrings,i);
    }

    for ( i = 0; i < SIZE; i++ )
    {
        if(len[i] == 0)
            goto emptyString;
        else
            goto nonEmptyString;
        loop: printExecutionMessage();
    }

emptyString:
    printErrorMessage();
    goto loop;
nonEmptyString:
    printString(arrayOfStrings[i]);
    goto loop;
}

この例では、main 関数に 4 つの goto ステートメントがあります。

メトリクス情報

グループ: 関数
頭字語: GOTO
HIS メトリクス:あり