If you're seeing this message, it means we're having trouble loading external resources on our website.

如果你被网页过滤器挡住,请确保域名*.kastatic.org*.kasandbox.org 没有被阻止.

主要内容

定义一个过程

我们可以用编程做一些非常简单的事情,例如计算复杂的数学表达式和以各种方式操纵字符串。有时我们会提出一些非常简洁的代码,以便我们多次重复使用它。
这就是为什么所有编程语言都允许你制作自己的程序,也称为子程序,函数或方法。 过程是可重用的语句集合。
在 JavaScript 语言中,有多种方式定义程序。一个方法是创建一个新的变量,并分配给包含声明的函数块:
var singBingo = function() {
   println("B!");
   println("I!");
   println("N!");
   println("G!");
   println("O!");
};
一旦我们定义了一个函数,我们可以随时调用它,计算机将执行函数块的“内部”的声明(在黑括号之间)。
在 JavaScript 中调用一个函数,我们要写出那个函数的名字,两个括号,和一个分号。另外让我们调用它三次:
singBingo();
singBingo();
singBingo();
📝 在这里看相似的代码: App Lab | Snap | Python
这一过程似乎很熟悉,因为我们曾调用println()Math.sin() 等内置功能。现在我们也可以调用我们自己的职能,并建立一个有用的程序库,以满足我们的需要。
再举一个例子,这里有一个程序,通过一些程序和一些ASCII艺术来讲述我最喜欢的笑话。
📝 在这里看相似的代码: App Lab | Snap | Python
想象一下,我们得要多费力气才可以做出这个笑话!但我们现在只用了三个函数就完成了,这就是程序的力量。
事实上,当我们在程序中调用一个过程时,我们自己节省了重复键入相同代码的时间和空间。 这还减少了出现新bug的可能,因为我们不需要重新输入函数内的所有代码。

计算机内部

当计算机看到程序调用一个过程时,它根据名字查找这个过程,找到这个过程包含的代码(statements),并执行这些代码。尽管看上去这些代码更少,计算机 依然 进行了一切执行这些代码所需的。
在某些方面,它要做 更多 的工作,因为它又有要花费一个步骤来寻找程序名称。不过,这是一个快速检查。
singBingo() 之前重新引用代码:
singBingo();
singBingo();
singBingo();
在后台上,计算机仍在执行所有这些行:
println("B!");
println("I!");
println("N!");
println("G!");
println("O!");
println("B!");
println("I!");
println("N!");
println("G!");
println("O!");
println("B!");
println("I!");
println("N!");
println("G!");
println("O!");
程序不会使计算机运行得更容易,但它们确实使 人类 更容易制作复杂的程序了。
我们将探索如何通过使用参数和返回值使程序更强大。

伪代码中的程序

这个伪码是一个名为 名字的程序:
程序(PROCEDURE) 名字 ()
{
     <说明>
}
这是singBingo过程的伪代码,让我们调用它:
PROCEDURE singBingo () {
  DISPLAY ("B!")
  DISPLAY ("I!")
  DISPLAY ("N!")
  DISPLAY ("G!")
  DISPLAY ("O!")
}

singBingo ()
singBingo ()
singBingo ()

想加入讨论吗?

尚无帖子。
你会英语吗?单击此处查看更多可汗学院英文版的讨论.