跳轉到內容

程式設計概念:面向過程程式設計

來自華夏公益教科書

單元 3 - ⇑ 程式設計基礎 ⇑

面向過程程式設計 面向物件程式設計 →


普通程式一行一行地執行,直到到達結尾。這很容易閱讀,但隨著程式變長,閱讀難度增加,維護難度增加,錯誤的可能性也增加。

面向過程程式設計是一種為程式強加結構的方法——具體而言:新增過程——以便於操作。

幾乎所有程式在一定程度上都使用過程。例如,我們需要過程來在螢幕上顯示輸出,或從使用者那裡讀取輸入。但在面向過程程式設計中,我們也儘可能地建立新的、定製的過程,以簡化程式本身。

這裡有一個不是面向過程的程式。它使用了“input”過程,但重複了幾乎相同的程式碼行三遍

i1 = input( "First number" )
i2 = input( "Second number" )
result1 = i1 + i2

i3 = input( "First number" )
i4 = input( "Second number" )
result2 = i3 + i4

i5 = input( "First number" )
i6 = input( "Second number" )
result3 = i5 + i6

以下是使用面向過程程式設計的相同示例


result1 = sum()
result2 = sum()
result3 = sum()

def sum():
	i1 = input( "First number" )
	i2 = input( "Second number" )
	return i1 + i2;

當一個面向過程的程式遇到第 1 行的 sum() 這樣的過程名稱時,程式就會跳出,執行與 sum() 對應的程式碼,然後返回執行第 2 行。

面向過程程式設計的優點

[編輯 | 編輯原始碼]

在程式中新增過程有幾個優點

  • 允許我們重複使用程式碼而不必重新輸入(減少編寫時間)
  • 允許我們重複使用有效的程式碼(每次重寫程式碼時,都有可能無意中新增錯誤)
  • 使程式的功能和方式更清晰(每個過程都需要一個名稱;名稱解釋了這些程式碼行是做什麼的)
  • 減少程式的長度(使閱讀和除錯更容易、更快)
  • 允許編譯器進行更多最佳化(編譯器檢測到重複使用的程式碼並利用它來走捷徑)

在上面的示例中,新的過程 sum 詢問使用者輸入兩個數字,計算總和,然後返回它。過程的名稱使我們能夠閱讀程式碼並做出明智的猜測,即使不閱讀 sum 過程的內容也是如此。

如果一個程式只需要幾行原始碼就可以寫下來,那麼使用這種技術幾乎沒有優勢。

特別是,如果您的程式碼沒有重複,並且沒有相互關聯的程式碼部分(例如,上面用於對兩個數字求和的三行程式碼),那麼新增過程可能會使程式更長、更難操作。不必要的過程通常不會改善程式。

面向過程程式設計和麵向物件程式設計的出現是因為程式越來越長,越來越難操作。程式設計師需要更多結構來簡化程式設計過程。

中等大小和複雜程度的程式可以使用過程來簡化。

華夏公益教科書