结构化程序设计

结构化程序设计主张按功能来分析需求,其主要原则是自顶而下、逐步求精、模块化等等,它首先采用结构化分析(Structured Analysis,SA)对系统进行需求分析,然后使用结构化设计(Structured Design,SD)进行概要设计、详细设计,最后采用结构化编程(Structured Program,SP)来实现系统。
结构化程序设计主张按功能把软件系统逐步细分,因此也称为面向功能的程序设计方法,或者面向数据流的处理方式,这种自顶而下的设计方式在设计阶段就需要考虑每个模块应该分解成哪些子模块,每个子模块又分解成哪些更小的模块,以此类推,直到将模块细化成一个个函数。
结构化程序设计的最小程序单元是函数,每个函数负责完成一个功能,整个软件系统由一个一个函数组成,其中作为程序入口的函数被称为主函数,主函数依次调用其他普通函数,普通函数再依次调用,从而完成整个软件系统的功能。
结构化程序设计的最大弊端是适应性比较差,扩展性也不强,自顶而下的设计一旦遇到需求变化,或者需要修改现有的实现方式时,都需要自顶向下修改模块结构,维护成本相当高。

程序的三种基本结构

不得不提的是很多编程语言都支持GOTO语句,GOTO语句非常灵活,可以让程序的控制流程任意跳转,如果大量的使用GOTO语句,那么完全不需要使用循环;但是GOTO一旦多了带来的负面效应也难以处理,谁都蒙圈,因此GOTO渐渐被抛弃了。Java拒绝使用GOTO,但goto被java列为保留字。
程序化程序设计非常强调具体功能的实现,而功能的实现过程由一系列操作组成,这些操作之间的执行次序就是程序的控制结构,而任何简单或复杂的功能都可以由顺序结构、选择结构和循环结构这三个基本结构组合而成。

顺序结构

表示程序中的各个操作是按照他们在源码中的排列顺序依次执行的,虽然Java是面向对象的编程语言,但Java的方法类似于结构化程序设计的函数,因此方法中代码的执行也是顺序结构。
结构化程序设计

选择结构

表示程序的处理需要根据某个特定的条件选择其中的一个分支执行,可以是单选、双选或者多选
结构化程序设计
结构化程序设计
结构化程序设计

循环结构

循环结构表示程序反复执行某个或者某些操作,直到某条件为假或者为真才停止循环,循环结构的基本形式有两种:当型循环和直到型循环,换句话说就是“当条件为真时执行循环”和“直到为假时循环结束”
结构化程序设计
结构化程序设计的任何结构都具有唯一的入口和出口,并且程序不会出现死循环,Java的方法体内同样是由这三种程序结构组成,虽然Java是面向对象设计的而非结构化设计的。