Number of Call Levels

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

Описание

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

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

Чтобы осуществить пределы на метриках, смотрите, Вычисляют Метрики сложности кода.

Примеры

развернуть все

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
Метрика HIS: да

Смотрите также