程序的控制结构
结构化程序设计方法的基础
在计算机刚出现的早期,它的价格昂贵、内存很小、速度慢。程序员为了在很小的内存中解决大量的科学计算问题,并为了节省昂贵的CPU机时费,不得不使用巧妙的手段和技术,手工编写各种高效的程度。其中显著的特点是程序中大量使用GOTO语句,使得程序结构混乱、可读性差、可维护性差、通用性更差。
结构化程序设计的概念最早在1966年由荷兰科学家E.W.Dijkstra提出:
- 可以从高级语言中取消GOTO语句、程序的质量与程序中所包含的GOTO语句的数量成反比;
- 任何程序都基于顺序、选择、循环3种基本的控制结构;
- 程序具有模块化特征,每个程序模块具有唯一的入口和出口。
这些为结构化程序设计的技术奠定了理论基础
结构化编程主要包括以下两个方面:
-
在软件设计和实现过程中,提倡采用自顶而下、逐步细化的模块化程序设计原则
-
在代码编写时,强调采用单入口、单出口的3种基本控制结构(顺序、选择、循环),避免使用GOTO语句,其构成如同一串珠子一样,顺序清楚、层次分明
结构化程序设计方法的基本结构
顺序结构
如图所示,这是一个顺序结构。
其中A和B两个框是顺序执行的。即在执行完A框指定的操作后,必须接着执行B框所指定的操作
说明:顺序结构是算法的基本结构,任何一个算法都包含顺序结构
选择结构
选择结构又可被称为分支结构。
此结构中必包含一个判断框。根据指定的条件P是否成立而选择执行A框或B框。
说明:在选择结构中,无论条件P是否成立,只能执行A框或B框中的一个,不可能即执行A框又执行B框
循环结构
循环结构又称重复结构,即反复执行某一部分的操作。
循环结构可以分为以下两类:
- 当(while)型循环结构:当型循环结构如图所示。
它的功能是:当给定的条件P1成立时,执行A框操作,执行完A框后,再判断条件P1是否成立,如果仍然成立,再执行A框,如此反复执行A框,直到某一次P1条件不成立为止,此时不执行A框,而从b点脱离循环结构。
-
直到(until)型循环结构:直到型循环结构如图所示。
它的功能是:先执行A框,然后判断给定的条件P2是否成立,如果条件P2不成立,则再执行A框,然后再对条件P2做判断,如果条件P2仍然不成立,则再次执行A框……如此反复执行A框,直到给定的条件P2成立为止,此时不再执行A框,而从b点脱离循环结构。