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