0
点赞
收藏
分享

微信扫一扫

#yyds干货盘点# 控制流图的基础知识

控制流图是程序流程图的一种简化,它可以更加突出的表示程序控制流的结构。

一、控制流图只有以下两种简单的图示符号:

(1)节点:以标有编号的圆圈表示,表示基本的程序块,可以是一个单独的语句,也可以是多个顺序执行的语句块。

(2)控制流(边):用带箭头的弧线表示,连接相关的两个节点。每个控制流可以标有名字(也可以不标),但必须终止于某一节点。

二、画控制流图涉及到以下三种控制结构:

(1)顺序结构

顺序结构用来表示一个计算操作序列,整个程序整体上都是符合从上到下的顺序操作的。计算过程从所描述的第一个操作开始,按顺序依次执行后续的操作,直到序列的最后一个操作,顺序结构内也可以包含其他控制结构,其中各语句可以用“{”和“}”括起来表示自己的控制范围,被括起来的所有语句组成一个可执行的单元。如下图所示:

#yyds干货盘点# 控制流图的基础知识_控制流

(2)选择结构

选择结构提供了在两种或多种分支中选择其中之一的逻辑。基本的选择结构是指定一个条件P,然后根据条件的成立与否决定控制流走A还是走B,只能从两个分支中选择一个来执行,如下图(a)所示。这种结构经常用if...else语句来表示,格式为:

if(表达式)

    语句1;

else

    语句2;

选择结构中的A或B还可以包含顺序、选择和循环结构。

程序设计语言中通常还提供简化了的选择结构,当上面语句2为空语句时,可以简化为:

if(表达式)

    语句1;

如下图(b)所示,此时语句B是不存在的,但是不成立这条分支是存在的,此时经常用if语句表示。

#yyds干货盘点# 控制流图的基础知识_控制流_02

使用if语句时,需要注意if和else的匹配关系,else总是与离它最近的尚没有else的if相匹配。

(3)循环结构

循环结构描述了重复计算的过程,通常由三个部分组成:初始化、需要重复计算的部分和重复的条件。其中,初始化部分有时在控制的逻辑结构中不进行显式的表示。重复结构主要有两种形式:while/for型重复结构和do-while型重复结构。while/for型结构的逻辑含义是先判断条件P,若成立,则进行需要重复的计算A,然后再去判断重复条件;否则,控制就退出重复结构,如下图所示。

#yyds干货盘点# 控制流图的基础知识_控制流_03

1)while语句

while语句描述了先判断条件再执行重复计算的控制结构,while语句的一般形式是:

while (条件表达式)

循环体语句;

其中,循环体语句是内嵌的语句,当循环体语句多于一条时,应使用“{”和“}”括起来。执行while语句时,先计算条件表达式的值,当值为非0时,就执行循环体语句,然后重新计算条件表达式的值后再进行判断,否则就结束while语句的执行过程。

2)for语句

for语句的基本格式是:

for(表达式1;表达式2;表达式3)

循环体语句; 

一般表达式1用于赋初始值,表达式2用于判定循环条件是否成立,表达式3用于变量值的变化操作,例如自增1操作等。

用while语句等价地表示为:

表达式1;

while(表达式2){

循环体语句;

表达式3;

}

for语句的使用很灵活,其内部的三个表达式都可以省略,但用于分隔三个表达式的分号不能遗漏。

do-while型结构的逻辑含义是先执行循环体A,然后再判断条件P,若成立则继续执行循环体A的过程并判断条件;否则,控制就退出重复结构,如下图所示。

#yyds干货盘点# 控制流图的基础知识_while语句_04

3)do-while语句

do-while 语句描述了先执行需要重复的计算再判断条件的控制结构,其一般格式是:

do

    循环体语句;

while (条件表达式);

执行do-while语句时,先执行内嵌的循环体语句,然后再计算条件表达式的值,若值为非0,则再次执行循环体语句和计算条件表达式并判断,直到条件表达式的值为0时,才结束do-while语句的执行过程。所以do-while循环体的执行次数刚好等于循环条件的判断次数。


三、画控制流图涉及到以下三种中断语句:

(1)break语句:break语句在循环语句中的作用是终止并跳出当前的循环语句。也就是说break会直接结束当前循环,跳出循环体,break以后的循环体中的语句不会继续执行,循环体外面的会执行,也就是说break只能跳出所在的一层循环体。如果遇到两层嵌套的循环,break语句又恰好在最内层的循环,此时break语句只能跳出最里面的一层循环,无法跳出最外层的循环。

(2)continue语句:中止本次循环,继续下次循环。continue语句的功能与break不同,它是结束当前这一次的循环,转而执行下一次循环。在循环体中,continue 语句执行之后,循环体内其后的语句均不再执行。对于for循环,continue语句执行后自增语句仍然会执行。对于while和 do...while循环,continue语句会重新执行条件判断语句。

(3)return语句:该语句的功能是结束一个方法,用于函数返回值。一旦在循环体内执行return,将会结束该方法,循环自然也随之结束。与continue和break不同的是,reurn直接结束整个方法,不管这个return处于多少层循环之内。

四、例如针对下面的一段C语言代码:

#yyds干货盘点# 控制流图的基础知识_选择结构_05

其对应的控制流图可以表示为:

#yyds干货盘点# 控制流图的基础知识_while语句_06


举报

相关推荐

0 条评论