1.3.2 三种基本结构
按照操作的执行顺序,程序可以分为三类基本结构:顺序结构、选择结构和循环结构。1996年,计算机科学家Bohm和Jacopini证明:任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构这三种结构组合而成。所以,这三种结构就被称为程序设计的三种基本结构,也是结构化程序设计建议采用的结构。
1.顺序结构
在顺序结构的程序里,各操作是按照它们出现的先后顺序执行的。如图1-6所示,操作1和操作2 按自上而下地顺序执行。这是最简单的一种基本结构。这个结构里只有一个入口点A和一个出口点B,其特点是从入口点A开始,按顺序执行所有操作,直至出口点B处。事实上,所有程序的总流程都是一个顺序结构。
2.选择结构
选择结构,也叫分支结构。选择结构的程序里存在一些分支,程序通过对一些条件的判断选择执行的分支。按照分支数,选择结构又可以分为单选择、双选择和多选择三种形式。
· 单选择结构如图1-7所示,当双选择结构中某个分支为空时,就称为单选择结构。
· 双选择结构是最常见的,如图1-8 所示,结构中有两个分支,必须要执行其中一支;如果满足条件则执行操作1,否则,执行操作2。
· 多选择结构如图1-9所示,有多个分支共存,程序根据Type值选择其中之一来执行。
图1-6 顺序结构
图1-7 单选择结构
图1-8 双选择结构
图1-9 多选择结构
从上述三种结构的示意图中可以看到:不管是哪一种选择结构,都只有一个入口点和一个出口点。
3.循环结构
在循环结构中,是反复地执行一系列操作,直到某条件为假(或为真)时才终止循环。按照判断条件出现的位置,可以分为while循环结构和until循环结构。
· while循环结构中,先判断条件,如图1-10所示。如果A不大于1,则直接退出循环体到达流程出口处;如果满足A大于1,执行操作1,并且在操作1结束后返回到循环入口,重新判断条件;如果A还是大于1,再次执行操作1,再返回结构入口……如此反复。
· until型循环结构中,在结构入口处先执行循环体,然后再判断条件,如图1-11所示。当程序执行完操作1后,判断A是否大于1。如果是,则再执行操作1;然后再次判断A是否大于1;如果结果仍然为是,则再次执行操作1……
图1-10 while循环结构
图1-11 until循环结构
在这两种结构中,操作1都可能被反复执行,直到A的值不大于1,才结束程序。同样,循环结构也只有一个入口点A和一个出口点B。
合理地使用这三种基本结构,可以组合成复杂的高级结构;而所有的复杂结构都可以分解为这三种基本结构。