一种在已知迭代次数的情况下重复代码块的方法。
for
循环对于重复执行特定次数的语句很有帮助。例如,for
循环使得表达"画五条线"的想法变得简单,如下所示:
for (let x = 10; x < 100; x += 20) { line(x, 25, x, 75); }
循环的头部以关键字 for
开头。循环通常在重复或迭代时递增或递减。括号中的语句 let x = 10; x < 100; x += 20
决定循环的重复方式:
let x = 10
表示循环从10
开始计数,并使用变量x
记录迭代次数。x < 100
表示循环计数到 100(但不包括 100)。x += 20
表示每次迭代结束时递增20
。
花括号 {}
之间的代码是循环的主体。循环主体中的语句在每次循环迭代期间重复执行。
意外创建无限循环是很常见的。当发生这种情况时,绘图可能会变得无响应,网页浏览器可能会显示警告。例如,以下循环永远不会停止迭代,因为它没有计数递增:
for (let x = 10; x < 100; x = 20) { line(x, 25, x, 75); }
语句 x = 20
使变量 x
的值变为 20
,始终小于 100
。
for
循环也可以递减计数:
for (let d = 100; d > 0; d -= 10) { circle(50, 50, d); }
for
循环也可以包含其他循环。下面的嵌套循环绘制了一个点网格。
// Loop from left to right. for (let x = 10; x < 100; x += 10) {// Loop from top to bottom. for (let y = 10; y < 100; y += 10) { point(x, y); }
}
for
循环对于遍历数组的元素也非常有用。例如,常见的是遍历一个包含绘制位置或内容信息的数组:
// Create an array of x-coordinates. let xCoordinates = [20, 40, 60];for (let i = 0; i < xCoordinates.length; i += 1) { // Update the element. xCoordinates[i] += random(-1, 1);
// Draw a circle. circle(xCoordinates[i], 50, 20); }
如果数组的值没有被修改, 可以用 for...of
语句可以简化代码。这类似于 Python 中的 for
循环,和 C++、Java 中的 for-each
循环。 以下循环具有相同的效果:
// Draw circles with a for loop. let xCoordinates = [20, 40, 60];for (let i = 0; i < xCoordinates.length; i += 1) { circle(xCoordinates[i], 50, 20); }
// Draw circles with a for...of statement. let xCoordinates = [20, 40, 60]; <p>for (let x of xCoordinates) { circle(x, 50, 20); } </p>
在上面的代码片段中,变量 i
和 x
有不同的作用。
在第一个代码片段中,i
从 0
递增到 2
,也就是 xCoordinates.length
减 1。 i
用于访问 xCoordinates
中索引为 i
的元素。
在第二个代码片段中,x
并不跟踪循环的进度或索引。在每次迭代中,x
包含 xCoordinates
的下一个元素。 x
从 xCoordinates
的开头(20
)开始,并在下一次迭代中将其值更新为 40
,然后 60
。
示例
相关参考
Array
一个按顺序存储多个数据的列表.
class
特殊类型对象的创建模板 类可以让使用对象编程变得更容易。例如,一个 Frog 类可以创建行为像青蛙一样的对象。通过类创建的每个对象都是该类的一个实例。同一个类的所有实例都是相同类型。以下是创建 Frog 类实例的示例: let fifi = new Frog(50, 50, 20); 变量 fifi 代表 Frog 的一个实例。关键字 new 用于在语句 new Frog() 中调用 Frog。总之,一个新的 Frog 对象被创建并赋值给了变量 fifi。类是模板,因此我们可以用它创建多个实例: // First Frog instance.
for
一种在已知迭代次数的情况下重复代码块的方法.
function
一个被命名的语句组 Functions 函数有助于组织和复用代码。例如,函数使得表达“画一朵花”的想法变得容易: function drawFlower() { // Style the text.