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  } 
4

1 回答 1

1

不,假设您正在计算执行路径。

如果您正在计算条件路径的数量,那么可以。

通常,当您计算圈复杂度时,您正在执行后者,所以是的,您应该计算函数中简单条件的数量。

我所说的简单条件是指上述函数等价于:

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); 
 } 
于 2013-12-17T01:15:52.410 回答