首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >While &For循环

While &For循环
EN

Stack Overflow用户
提问于 2014-08-28 01:39:34
回答 7查看 163关注 0票数 2

我不明白为什么这个函数是一个While-Loop,而不是一个For-Loop。我试着数到10,并在每次迭代时打印到控制台。

While-Loop:

代码语言:javascript
复制
function oneToTenW() {
  var x = 0;
  while(x < 10) {
    x++;
    console.log ("x is equal to " + x);
  }
}

For-Loop:

代码语言:javascript
复制
function oneToTenF() {
  for(var x = 0; x < 10; x++);
  console.log ("x is equal to " + x);
}

当我调用While-Loop时,我得到的结果是:

代码语言:javascript
复制
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时,我得到的结果是:

代码语言:javascript
复制
oneToTenf();
x is equal to 10

有什么想法吗?

EN

回答 7

Stack Overflow用户

发布于 2014-08-28 01:41:30

这里有一行:

代码语言:javascript
复制
for(var x = 0; x < 10; x++);

因为在结尾处有一个分号,所以语句实际上在那里终止,循环不做任何事情就执行了。要让循环执行下面的语句,您需要通过删除分号将该语句包含在循环体中:

代码语言:javascript
复制
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

或者将要执行的一条或多条语句括在块(大括号)中:

代码语言:javascript
复制
for(var x = 0; x < 10; x++) {
  console.log ("x is equal to " + x);
}

现在,该语句将在每次循环迭代时执行。

票数 7
EN

Stack Overflow用户

发布于 2014-08-28 01:41:49

在for循环之后有一个分号,所以它不会循环任何内容。尝试删除那个分号,也许可以添加一些括号,就像您对while循环所做的那样。

票数 6
EN

Stack Overflow用户

发布于 2014-08-28 01:41:23

因为你有一个多余的分号

代码语言:javascript
复制
function oneToTenF() {
  for(var x = 0; x < 10; x++);
  // Here -------------------^
  console.log ("x is equal to " + x);
}

因此,循环体完全由空语句(;)组成。完成后,运行console.log行以显示x的当前值,该值现在为10

要将console.log行放入循环体,从技术上讲,您需要做的就是删除;

代码语言:javascript
复制
function oneToTenF() {
  for(var x = 0; x < 10; x++)
    console.log ("x is equal to " + x);
}

...although我总是在控制结构上使用块({}):

代码语言:javascript
复制
function oneToTenF() {
  for(var x = 0; x < 10; x++) {
    console.log ("x is equal to " + x);
  }
}

其中任何一个都会显示从09的值,因为for循环的工作方式如下所示:

执行(x++)

  • Do (x < 10)

  • If
  1. (x < 10)
  2. If
    1. is
    2. 时,返回步骤2
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25533692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档