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

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

主要内容

复习:循环

以下复习这个有关循环的教程所包括的内容。
在我们编程序的时候,我们常会发现要重复某一段代码,或将代码重复但每次做点小改动。为了避免写重复写所有的代码,我们可以用一个 循环。Javascript 有两种循环,while循环 以及 for循环
while循环 可以使代码重复运行,直到某一个条件不成立。例如,以下 while循环在y的值小于400的条件满足时一直在点 (30, y) 显示 y 的值。这个循环每运行一次就给 y 加 20,因此 y 由 40 开始,然后增加到 60,80,100,120,等。
var y = 40;
while (y < 400) {
    text(y, 30, y);
    y += 20;
}
重要的是括号中的条件需要在某个时候变成 false (不成立) -- 否则我们就会得到所谓的 无穷循环 !这就是如果我们去掉 y += 20 之后会发生的事,因为 y 永远都会是 40,永远小于 400,程序不会知道何时要停。
var y = 40;
while (y < 400) {
    text(y, 30, y);
}
for循环 就像 while循环,但它有更特殊的语法。程序员发明 for循环是当他们发现很多循环总在重复做同样的三件事 -- 创造循环的计数器变量(例如以上的 y),将它与某个数值相加,并检查结果是否小于某一个数值。for循环语法中,那三件事都有特定的位置。以下是跟以上 while循环同样的循环,表达为 for 循环的形式:
for (var y = 40; y < 400; y += 20) {
    text(y, 30, y);
}
循环也可以 嵌套。嵌套 for 函数实际上很常见,特别是在二维绘图中,因为它使画格状的图形变得很容易。当我们在循环中嵌套循环,也就是告诉程序 ”干这件事 x 次,并在每次干那件事时,还要干另一件事 y 次。“ 想像在绘制表格时 -- 我们要告诉程序 ”绘制列 10 次,并在每列中,还要绘制 15 个小格。” 以下是如何用嵌套循环达到此目的:
for (var col = 0; col < 10; col++) {
    for (var row = 0; row < 15; row++) {
        rect(col*20, row*20, 20, 20);
    }
}
你应该在何时用 for 循环而不用 while 循环?那就看你了。许多程序员偏爱 for 循环,因为那样更难意外地创造无穷循环(因为更难忘记增加计数器变量),但有时候用 while 循环更合理。两个都试试!

想加入讨论吗?

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