Количество уровней вызова

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

Описание

Эта метрика задает максимальную глубину вложения операторов управления, таких как if, switch, for или 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: да

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