我不明白为什么这个函数是一个While-Loop,而不是一个For-Loop。我试着数到10,并在每次迭代时打印到控制台。
While-Loop:
function oneToTenW() {
var x = 0;
while(x < 10) {
x++;
console.log ("x is equal to " + x);
}
}For-Loop:
function oneToTenF() {
for(var x = 0; x < 10; x++);
console.log ("x is equal to " + x);
}当我调用While-Loop时,我得到的结果是:
oneToTen();
x is equal to 1
x is equal to 2
x is equal to 3
x is equal to 4
x is equal to 5
x is equal to 6
x is equal to 7
x is equal to 8
x is equal to 9
x is equal to 10然而,当我调用For-Loop时,我得到的结果是:
oneToTenf();
x is equal to 10有什么想法吗?
发布于 2014-08-28 01:41:30
这里有一行:
for(var x = 0; x < 10; x++);因为在结尾处有一个分号,所以语句实际上在那里终止,循环不做任何事情就执行了。要让循环执行下面的语句,您需要通过删除分号将该语句包含在循环体中:
for(var x = 0; x < 10; x++)
console.log ("x is equal to " + x); // <- the line immediately after the for statement will be executed on every iteration或者将要执行的一条或多条语句括在块(大括号)中:
for(var x = 0; x < 10; x++) {
console.log ("x is equal to " + x);
}现在,该语句将在每次循环迭代时执行。
发布于 2014-08-28 01:41:49
在for循环之后有一个分号,所以它不会循环任何内容。尝试删除那个分号,也许可以添加一些括号,就像您对while循环所做的那样。
发布于 2014-08-28 01:41:23
因为你有一个多余的分号
function oneToTenF() {
for(var x = 0; x < 10; x++);
// Here -------------------^
console.log ("x is equal to " + x);
}因此,循环体完全由空语句(;)组成。完成后,运行console.log行以显示x的当前值,该值现在为10。
要将console.log行放入循环体,从技术上讲,您需要做的就是删除;
function oneToTenF() {
for(var x = 0; x < 10; x++)
console.log ("x is equal to " + x);
}...although我总是在控制结构上使用块({}):
function oneToTenF() {
for(var x = 0; x < 10; x++) {
console.log ("x is equal to " + x);
}
}其中任何一个都会显示从0到9的值,因为for循环的工作方式如下所示:
执行(x++)
x < 10)
x < 10)https://stackoverflow.com/questions/25533692
复制相似问题