exponenta event banner

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

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

Описание

Эта метрика определяет максимальную глубину вложенности операторов потока управления, таких как if, switch, for, или while в функции. Функция без операторов control-flow имеет уровень вызова 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
ЕГО метрика: Да