编程基础概念:程序结构

===》点我返回目录《===

我们这里探讨的程序结构,基于一个编程的范式:结构化编程(Structural Programming)。当然还有别的范式,技术演进的历史进程,通行的就是结构化编程和面向对象编程,而面向对象编程内部的基础还是结构化编程的底子。所以我这里也只说基本的结构化编程的程序结构。

一个计算机程序从结构上来说,有三种结构:Sequence顺序,Decision分支和Repetition循环。科学家证明了只要这三种结构就可以完备地表达算法。

Sequence顺序结构举例:

a=1+2

b=3

print(a*b)

上面的三条语句是逐一按照次序执行的。

Decision分支结构举例:

if i<0:

    print ("Negative")

elif i==0:

    print ("Zero")

else:

    print ("Positive")

Repetition循环结构举例:

i = 0

while i< 10:

   print (i)

   i += 1

只要条件i<10成立,就会一直执行下面的两条语句。

还有一种循环语句的表达:

for i in range(5):

print(i)

for语句是遍历序列范围内所有的值,运行结果:

0 1 2 3 4

循环体中,可以通过break语句退出循环,也可以通过continue进行下一轮循环。

结构化程序设计采用"自顶向下,逐步求精"的方法从问题本身开始,经过逐步细化,将解决问题的步骤分解为由基本结构模块组成的结构化程序框图;代码实现的时候由顺序、选择和循环三种结构通过组合、嵌套构成。据此就容易编写出结构良好的程序来。

这些概念由软件大师E.W.Dijkstra在1965年提出。

E.W.Dijkstra曾经在1972年获得Turing奖,他是荷兰第一位计算机专业的科学家。他对我们程序员影响最大的就是“Goto语句有害论”,从我们刚入行的时候开始,就知道有一个叫Dijkstra的荷兰人在我们耳朵边叮嘱我们不要用goto语句要注意程序结构。2002年,在经过了长期的与癌症的抗争后,Dijkstra离开了我们,我听闻后,含泪写道“零落成泥碾作尘,只有香如故”。

 

(E.W.Dijkstra,1930.5.11-2002.8.6,图片来源:维基百科)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章