我试图在执行后保留一个for循环变量,因为条件将通过另一个for循环改变。这是我的例子:
l = 0;
for (var i = 0;i<5:i++){
for(var l; l<l+i;l++){
}
}
我的目标是记住离开for循环时的l值,并使用新条件将其保留用于下一次执行。我知道这很模糊,但是可以提供任何帮助。
答案 0 :(得分:0)
只需使用while
循环:
var l = 0;
for (var i = 0;i<5:i++){
while(l < l+i) {
// do stuff
l++;
}
// Here you have the value of l when breaked out of the loop
}
答案 1 :(得分:0)
var l = 0;
for (var i = 0;i<5:i++){
for(l; l<l+i;l++){
}
}
将让您保留l
的最新值。顺便说一句,我怀疑不使用break
会导致一个无限循环,因为l
始终小于{{ 1}}(l+i
不为0时)。
编辑:循环不递归
答案 2 :(得分:0)
您的代码已按预期工作,var l
在外部作用域中声明变量,以便您可以在循环外部访问它。
但是,您将需要修正拼写错误(:
-> ;
)和无限循环(对于肯定的l<l+i
来说,i
总是正确的),我d建议将var
声明放在变量的第一次初始化中:
var l = 0;
for (var i=0; i<5; i++) {
var end = l+i;
for (; l<end; l++) {
console.log(i, l);
}
}
答案 3 :(得分:0)
其他答案也可以,但是您没有理由在2019年使用var
,并且它们也没有有效地利用for循环语法。
let l = 0;
for (let i = 0; i<5; i++){
for(; l < i + 1; l++){
}
}
console.log(l); // 5
此示例通过外部循环的迭代维护l
的值,然后将其保留在末尾。