編程基礎概念:程序結構

===》點我返回目錄《===

我們這裏探討的程序結構,基於一個編程的範式:結構化編程(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,圖片來源:維基百科)

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