Java脚本中的for循环是如何执行的?

2022-06-21 00:00:00 for-loop javascript

我不知道如何才能最好地接近for循环。希望对for循环的理解将有助于阐明其他类型的循环。

示例代码

for (var i=0; i < 10; i=i+1) {
    document.write("This is number " + i);
}

我的理解是,当i被初始化时,它从0的值开始,然后根据条件< 10进行求值。如果小于10,则执行语句document.write("This is number + i);一旦执行完前一条语句,才会将下一个值递增1

我参考过的指南:

  1. http://www.functionx.com/javascript/Lesson11.htm
  2. http://www.cs.brown.edu/courses/bridge/1998/res/javascript/javascript-tutorial.html#10.1
  3. http://www.tizag.com/javascriptT/javascriptfor.php

现在http://www.functionx.com/javascript/Lesson11.htm处的指南似乎另有说明,即

要执行此循环,需要检查启动条件。这通常是 应开始计数的初始值。接下来,条件是 测试;此测试确定循环是否应继续。如果 该测试呈现TRUE结果,然后使用表达式修改 执行循环和语句。在声明已被 执行后,循环重新启动。

抛给我的行是";,如果测试结果为真,则使用该表达式修改循环,并执行语句";。似乎是因为0小于10,所以修改增量表达式,修改为0 + 1,然后执行语句,例如document.write

我的问题

解释for循环的正确方式是什么?我自己的理解正确吗?同样的理解是否适用于其他编程语言,如PHP、Perl、Python等?


解决方案

您引用的来源是错误的,我们可以证明...

for循环的基础有四个可以执行的独立块:

for(initialiseconditionfinishediteration){iteration>

幸运的是,我们可以在每个块中执行一个函数。因此,我们可以创建四个函数,在它们执行时记录到控制台:

var initialise = function () { console.log("initialising"); i=0; }
var condition = function () { console.log("conditioning"); return i<5; }
var finishediteration = function () { console.log("finished an iteration"); i++; }
var doingiteration = function () { console.log("doing iteration when `i` is equal", i); }

然后我们可以运行以下命令,将上述函数放入每个块中:

for (initialise(); condition(); finishediteration()) {
    doingiteration();
}

卡波姆。有效。

如果您在Mac上使用Safari查看此页面,则可以AppleAlt+i按顺序将上述两个代码片段复制到控制台中并查看结果。

编辑,附加信息...

还有...已完成小版本块是可选的。例如:

for (var i=0; i<10;) { 
    console.log(i); i++; 
};

确实有效。

相关文章