Number of Call Levels

Максимальная глубина вложения потока управления структур

Описание

Эта метрика задает максимальную глубину вложения операторов потока управления, таких как if, switch, for, или while в функции. Функция без операторов потока управления имеет уровень вызова 1.

Рекомендуемый верхний предел для этой метрики равен 4. Для лучшей читаемости вашего кода попробуйте применить верхний предел для этой метрики.

Для обеспечения пределов на метрики смотрите Compute Code Complexity Metrics.

Примеры

расширить все

int foo(int x,int y)
{
    int flag = 0;
    if (x <= 0)
        /* Call level 1*/
        flag = 1;
    else
    {
        if (x <= y )
            /* Call level 2*/
            flag = 1;
        else
            flag = -1;
    }
    return flag;
}

В этом примере количество уровней вызовов foo равен 2.

int foo(int x,int y, int bound)
{
    int count = 0;
    if (x <= y)
        /* Call level 1*/
        count = 1;
    else
        while(x>y) {
            /* Call level 2*/
            x--;
            if(count< bound) {
                /* Call level 3*/
                count++;
            }
        }
    return count;
}

В этом примере количество уровней вызовов foo 3.

Метрическая информация

Группа: Функция
Акроним: LEVEL
ЕГО Метрика: Да