传统流程图用流线指出各个框的执行顺序
当顺序表的复杂,容易混乱,当变得十分混乱时 ,被称为BS型算法,意为一碗面条(A Bowl of Spaghetti),乱无头绪。
为了提供效率和避免混乱,人们提出了三种基本结构
1966年,Bohra 和Jacopini 提出以下3种结构,用这3种结构表示一个良好算法的基本单元。
PS:引用图片 来自方弘
1 顺序结构
c语言从上到下执行,虚框内是顺序结构
执行完A执行B
2 选择结构
又被称为,选取结构和分支结构
此结果必须包含一个判断框,根据给出的条件P 判断选择A或者B。
无论P条件是否成立,一定会选择AB其中一个,不可能出现两个都不选择,和两个都成立的情况。
A与B中可以有一个是空的
3 循环结构
又称为反复结构,即反复操作执行某一部分。
一共分为两类:
当(while)循环结构
当条件符合时 ,执行其参数内操作,再次判断是否符合,如果符合,继续执行内参数,在次判断,直到不符合条件,执行下一步操作
直到(until)循环结构
执行其参数内操作判断是否符合,当条件不符合时,再次执行参数,再次判断是否符合,如果不符合,继续执行内参数,在次判断,直到符合,执行下一步操作
三种基本结构的共同特点:
(1)只有一个入口;
(2)只有一个出口;(请注意:一个菱形判断框有两个出口,而一个选择结构只有一个出口。不要将菱形框的出口和选择结构的出口混淆。)
(3)结构内的每一部分都有机会被执行到;
(4)结构内不存在“死循环”(无终止的循环)
错误图例
如图,没有机会执行A框,所以此图是错误的
如图这是一个i额死循环,也是错误的。
小结:
这是一个多分支选择结构,根据表达式的值决定执行路线。虚线框内的结构是一个入口一个出口,并且有上述全部的四个特点。由此构成的算法结构也是结构化的算法。可以认为这是由三种基本结构所派生出来的。
例如
多联系 多画画就记住了
记住4个特点是关键:
一个入口一个出口,每一部分都可能被执行,没有死循环