控制流图的基本知识
首先我们得清楚控制流图中的几个判断循环是如何表示的:
判断节点的嵌套
清楚了上面表示方法,你还是很难画出复杂的控制流图,而软考的控制流图往往是2个或多个判断节点嵌套在一起。其实只要把嵌套的节点想象成被嵌套节点的一个整体,就很好理解。这里给个例子,希望能帮助大家思考:
上图其实就是while循环里面嵌套了一个if语句,嵌套的情况太多,这里不一一赘述。
复合条件的表示
这里应该是很多人的难点和痛点,还是以2017年软考题目为例吧:
代码:
Int DoString(char*string){
char *argv[100];
Int argc=1;
while(1) { //1
while(*string&& *string!='-') //2,3
String++; //4
if(!*string) //5
break; //6
argv[argc]=string;
while(*string && *string!="&& *string!='\n'&& *string!= '\t') //7,8,9,10
string++; //11
argc++; //12
}
return 0; //13
}
控制流图: