为什么函数有用 如何有效地使用函数

我们已经介绍了函数是什么以及它们的一些基本功能,现在让我们仔细看看为什么函数有用以及如何有效地使用函数。

为什么要使用函数?

新程序员常常会问:“我们不能把所有代码都放在main函数中吗?” 对于简单的程序,你绝对可以。然而,函数提供了许多好处,使它们在长度或复杂性不小的程序中非常有用。

  • 组织——随着程序变得越来越复杂,让所有代码都位于 main() 函数中变得越来越复杂。 函数几乎就像一个小程序,我们可以与主程序分开编写,而无需在编写时考虑程序的其余部分。 这使我们能够将复杂的程序简化为更小、更易于管理的块,从而降低程序的整体复杂性。
  • 可重用性——一旦编写了一个函数,就可以在程序中多次调用它。 这可以避免重复的代码(“不要重复自己”)并最大限度地减少复制/粘贴错误的可能性。 函数还可以与其他程序共享,从而减少每次必须从头编写(并重新测试)的代码量。
  • 测试——因为函数减少了代码冗余,所以首先需要测试的代码就更少了。 另外,由于函数是独立的,一旦我们测试了函数以确保其工作正常,我们就不需要再次测试它,除非我们更改它。 这减少了我们必须一次测试的代码量,从而更容易发现错误(或从一开始就避免它们)。
  • 可扩展性——当我们需要扩展程序以处理以前未处理的情况时,函数允许我们在一处进行更改,并在每次调用函数时使更改生效。
  • 抽象——为了使用一个函数,你只需要知道它的名称、输入、输出以及它所在的位置。 您不需要知道它是如何工作的,或者它依赖于什么其他代码来使用它。 这减少了使用其他人的代码(包括标准库中的所有内容)所需的知识量。

如何有效地使用函数

新程序员遇到的最大挑战之一(除了学习语言之外)是理解何时以及如何有效地使用函数。 以下是编写函数的一些基本准则:

  • 在程序中出现多次的语句组通常应制成一个函数。 例如,如果我们以相同的方式多次读取用户的输入,那么这就是一个很好的函数候选者。 如果我们在多个地方以相同的方式输出某些内容,那么这也是函数的一个很好的候选者。
  • 具有明确定义的输入和输出集的代码是函数的良好候选者(特别是当它很复杂时)。 例如,如果我们有一个想要排序的项目列表,那么执行排序的代码将是一个很好的函数,即使它只执行一次。 输入是未排序的列表,输出是排序的列表。 另一个好的预期功能是模拟 6 面骰子滚动的代码。 您当前的程序可能只在一个地方使用它,但是如果您将它变成一个函数,那么当您以后扩展您的程序或在未来的程序中时,它就可以被重用。
  • 一个函数通常应该执行一项(且仅一项)任务。
  • 当一个函数变得太长、太复杂或难以理解时,可以将其拆分为多个子函数。 这称为重构。

通常,在学习 C++ 时,您会编写很多涉及 3 个子任务的程序:

  1. 读取用户的输入
  2. 根据输入计算值
  3. 打印计算值

对于简单的程序(例如少于 20 行代码),其中部分或全部可以在函数main中完成。然而,对于较长的程序(或只是为了练习),这些中的每一个单独功能都可以编写一个函数。

新程序员经常将计算值和打印计算值结合到一个函数中。然而,这违反了函数的“单一任务”经验法则。计算值的函数应该将值返回给调用者,并让调用者决定如何处理计算出的值(例如调用另一个函数来打印该值)。

原创文章,作者:jkhxw,如若转载,请注明出处:https://www.jkhxw.com/why-functions-are-useful-and-how-to-use/

(0)
上一篇 6天前
下一篇 5天前

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注