Java脚本中的for循环是如何执行的?
我不知道如何才能最好地接近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
。
我参考过的指南:
- http://www.functionx.com/javascript/Lesson11.htm
- http://www.cs.brown.edu/courses/bridge/1998/res/javascript/javascript-tutorial.html#10.1
- 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(initialise
;condition
;finishediteration
){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++;
};
确实有效。
相关文章