程式設計概念:面向過程程式設計
外觀
普通程式一行一行地執行,直到到達結尾。這很容易閱讀,但隨著程式變長,閱讀難度增加,維護難度增加,錯誤的可能性也增加。
面向過程程式設計是一種為程式強加結構的方法——具體而言:新增過程——以便於操作。
幾乎所有程式在一定程度上都使用過程。例如,我們需要過程來在螢幕上顯示輸出,或從使用者那裡讀取輸入。但在面向過程程式設計中,我們也儘可能地建立新的、定製的過程,以簡化程式本身。
這裡有一個不是面向過程的程式。它使用了“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 過程的內容也是如此。
如果一個程式只需要幾行原始碼就可以寫下來,那麼使用這種技術幾乎沒有優勢。
特別是,如果您的程式碼沒有重複,並且沒有相互關聯的程式碼部分(例如,上面用於對兩個數字求和的三行程式碼),那麼新增過程可能會使程式更長、更難操作。不必要的過程通常不會改善程式。
面向過程程式設計和麵向物件程式設計的出現是因為程式越來越長,越來越難操作。程式設計師需要更多結構來簡化程式設計過程。
中等大小和複雜程度的程式可以使用過程來簡化。