基本符号
ps:请将线看成弧线[doge]
顺序结构
if选择结构
while循环结构
case多分支结构
控制流图由节点和控制流线(弧)两种符号组成。
结点以标有编号的圆圈表示,用于表示程序流程图中矩形框、菱形框的功能,是一个或多个分支的语句。
控制流线也成为控制流图的边或链接,用箭头表示,与程序流程图的流线功能一直,需要注意以下情况:
- 分支的汇聚处应有一个汇聚节点,即使该节点并不代表任何语句。
- 由边和节点限定的范围成为区域。需要注意的时,图形外的区域也应记为一个区域。
例:
void sort(int iRecordNum, int itype){
int x=0;
int y=0;
while(iRecordNum>0){
if(iRecordNum==0){
x=y+2;
break;
}else{
if(itype==1)
y=y+10;
else
y=y+20;
iRecordNum=iRecordNum-1;
}
}
}
控制流图
环路复杂度计算方法:
-
将环路复杂度定义为控制流图中的区域数。
例:该控制流图的环路复杂度为4
-
设定E为控制流图的边数,N为图的结点数,则定义环路的复杂度V(G)=E-N+2;
例:如上图所示E=10, N=8, V(G)=10-8+2=4
-
设定p为控制流图中的判定结点数,则有V(G)=P+1
例:图中判定结点数有:1、2、4,共3个,所以V(G)=3+1=4