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

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

Описание

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

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