For 循环不 运行 我期望它 运行
For loop does not run how I expect it to run
for 循环并不像我期望的那样 运行。我希望 for 循环只 运行 一次,但是当我 运行 它时,它会显示一个动画。
var xPositions = [200];
var yPositions = [0];
draw = function() {
background(204, 247, 255);
for (var i = 0; i < xPositions.length; i++) {
noStroke();
fill(0, 200, 255);
ellipse(xPositions[i], yPositions[i], 10, 10);
yPositions[i] += 5;
}
};
当我们说 i++
时,条件 i < xPositions.length
不再成立。
那么为什么循环 运行 不止一次?
有人告诉我,因为 draw 函数被永远调用,所以循环也将被永远调用。
但是,第二次循环尝试 运行,for 循环的条件不满足,因此不应该 运行。
谢谢。
Blockquote
.
块引用
I would expect the for loop to run only once
这是正确的期望...有一个补充:for 循环只会 运行 一次 每个函数调用 。如果draw()
被多次调用,那么每次调用函数都会执行循环。
draw()
创建动画的单帧。在这种情况下,您将雨滴向下移动 5 个像素,然后在新位置渲染帧。但是要获得动画,您需要每秒多次调用 draw()
。这类似于在每页上画一个略有不同版本的火柴人来翻转笔记本的角,以产生运动的错觉。在您的编程环境中会处理对 draw()
的重复调用。
您在 draw()
中编写的 for 循环旨在遍历每个雨滴。在这种情况下,您只有一个。我建议在不同位置添加 3 或 4 个雨滴。然后您将看到 for 循环如何遍历每个雨滴,将它们每个向下移动 5 个像素。然后,您在 Kahn Academy 上的编程环境将每秒为动画中的每一帧调用 draw()
几次。
循环应该运行只有一次,但是在处理js时,draw函数会一直调用。
for 循环并不像我期望的那样 运行。我希望 for 循环只 运行 一次,但是当我 运行 它时,它会显示一个动画。
var xPositions = [200];
var yPositions = [0];
draw = function() {
background(204, 247, 255);
for (var i = 0; i < xPositions.length; i++) {
noStroke();
fill(0, 200, 255);
ellipse(xPositions[i], yPositions[i], 10, 10);
yPositions[i] += 5;
}
};
当我们说 i++
时,条件 i < xPositions.length
不再成立。
那么为什么循环 运行 不止一次?
有人告诉我,因为 draw 函数被永远调用,所以循环也将被永远调用。
但是,第二次循环尝试 运行,for 循环的条件不满足,因此不应该 运行。
谢谢。
Blockquote
.
块引用
I would expect the for loop to run only once
这是正确的期望...有一个补充:for 循环只会 运行 一次 每个函数调用 。如果draw()
被多次调用,那么每次调用函数都会执行循环。
draw()
创建动画的单帧。在这种情况下,您将雨滴向下移动 5 个像素,然后在新位置渲染帧。但是要获得动画,您需要每秒多次调用 draw()
。这类似于在每页上画一个略有不同版本的火柴人来翻转笔记本的角,以产生运动的错觉。在您的编程环境中会处理对 draw()
的重复调用。
您在 draw()
中编写的 for 循环旨在遍历每个雨滴。在这种情况下,您只有一个。我建议在不同位置添加 3 或 4 个雨滴。然后您将看到 for 循环如何遍历每个雨滴,将它们每个向下移动 5 个像素。然后,您在 Kahn Academy 上的编程环境将每秒为动画中的每一帧调用 draw()
几次。
循环应该运行只有一次,但是在处理js时,draw函数会一直调用。