跳转到内容

编程概念:面向过程编程

来自维基教科书,开放世界中的开放书籍

单元 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 过程的内容也是如此。

如果一个程序只需要几行源代码就可以写下来,那么使用这种技术几乎没有优势。

特别是,如果您的代码没有重复,并且没有相互关联的代码部分(例如,上面用于对两个数字求和的三行代码),那么添加过程可能会使程序更长、更难操作。不必要的过程通常不会改善程序。

面向过程编程和面向对象编程的出现是因为程序越来越长,越来越难操作。程序员需要更多结构来简化编程过程。

中等大小和复杂程度的程序可以使用过程来简化。

华夏公益教科书