2013-12-17 3 views
1

Следует ли рассматривать булевы выражения с использованием & & как отдельных операторов при вычислении числа независимых путей? Например, строка 3 имеет два условия, и если первое выражение было ложным, то последующее выражение было бы оценено.Вычисление числа независимых путей

1 float calc(float sp, Boolean bt, int r) { 
2 float c = .060; 
3 if ((sp > 300000) && bt) 
4  c = .050; 
5 if (r > 3) 
6  c = c * .9; 
7 return (sp * c); 
8 } 

ответ

1

Нет, предполагая, что вы вычисляете пути выполнения.

Если вы вычисляете число условных путей, то да.

Обычно, когда вы вычисляете цикломатическую сложность, вы делаете последнее, поэтому ДА вы должны подсчитать количество условий SIMPLE в функции.

Что я имею в виду простых условий является то, что данная функция эквивалентна:

float calc(float sp, Boolean bt, int r) { 
    float c = .060; 
    if ((sp > 300000)) 
    if (bt) 
    c = .050; 
    if (r > 3) 
    c = c * .9; 
    return (sp * c); 
}