Javascript 使用“继续”时卡在无限循环中
我编写了一个代码来循环数组,当我使用while和其中的continue语句时,我陷入了无限循环:Javascript 使用“继续”时卡在无限循环中,javascript,Javascript,我编写了一个代码来循环数组,当我使用while和其中的continue语句时,我陷入了无限循环: function loop(){ var x = [1,2,3,4,5,6,7,8] var i = 0; while ( i < x.length){ if (x[i] % 2 == 0){ continue; } i++ } console.log(x[i]) } l
function loop(){
var x = [1,2,3,4,5,6,7,8]
var i = 0;
while ( i < x.length){
if (x[i] % 2 == 0){
continue;
}
i++
}
console.log(x[i])
}
loop()
函数循环(){
变量x=[1,2,3,4,5,6,7,8]
var i=0;
而(i
我试图在循环外部添加I++
,在循环内部我得到了相同的结果
预期结果为1,3,5等。实际结果为无限循环。如果您的目标是打印循环中的奇数,请尝试打印它们:
函数循环(){
变量x=[1,2,3,4,5,6,7,8]
var i=0;
而(i loop()
如果您的目标是打印循环中的奇数,请尝试打印它们:
函数循环(){
变量x=[1,2,3,4,5,6,7,8]
var i=0;
而(i loop()
问题是无论条件是否为真,i
都应该递增,否则它将继续无限期地反复测试相同的值
函数循环(){
常数x=[1,2,3,4,5,6,7,8]
for(设i=0;i loop()
问题是无论条件是否为真,i
都应该递增,否则它将继续无限期地反复测试相同的值
函数循环(){
常数x=[1,2,3,4,5,6,7,8]
for(设i=0;i loop()
如果要遍历数组,请使用for
循环如果要遍历数组,请使用for
循环继续立即转到循环的下一次迭代,跳过循环体的其余部分。因此它跳过了i++
,下一次迭代测试相同的x[i]
。因为没有任何变化,条件再次成功,所以它继续做同样的事情
您只需要跳过console.log(x[i])
语句,而不是正文中的所有内容
另外,您根本没有将console.log(x[i])
放在循环中,因此即使循环工作正常,您也不会打印出奇怪的元素;循环完成后,它将只打印x[i]
,由于i
将位于数组之外,因此它将打印“未定义”
函数循环(){
变量x=[1,2,3,4,5,6,7,8]
var i=0;
而(i loop()
continue
立即转到循环的下一个迭代,跳过循环体的其余部分。因此它跳过了i++
,下一次迭代测试相同的x[i]
。因为没有任何变化,条件再次成功,所以它继续做同样的事情
您只需要跳过console.log(x[i])
语句,而不是正文中的所有内容
另外,您根本没有将console.log(x[i])
放在循环中,因此即使循环工作正常,您也不会打印出奇怪的元素;循环完成后,它将只打印x[i]
,由于i
将位于数组之外,因此它将打印“未定义”
函数循环(){
变量x=[1,2,3,4,5,6,7,8]
var i=0;
而(i loop()
之所以发生这种情况,是因为在该条件下没有增加i
使用以下命令:
function loop(){
var x = [1,2,3,4,5,6,7,8]
var i = 0;
while ( i < x.length){
if (x[i++] % 2 == 0){
continue;
}
console.log(i);
}
console.log(x[i])
}
loop()
函数循环(){
变量x=[1,2,3,4,5,6,7,8]
var i=0;
而(i
发生这种情况是因为在这种情况下您没有增加i
使用以下命令:
function loop(){
var x = [1,2,3,4,5,6,7,8]
var i = 0;
while ( i < x.length){
if (x[i++] % 2 == 0){
continue;
}
console.log(i);
}
console.log(x[i])
}
loop()
函数循环(){
变量x=[1,2,3,4,5,6,7,8]
var i=0;
而(i
如果测试为真,那么i
会发生什么?因为测试依赖于x
和i
的值,如果它们不改变,则如果测试将保持不变。continue
语句脱离循环体返回顶部。@pointy-嗨,我可以从该代码中得到一个示例代码吗?正如上面提到的@pointy,如果你还需要更改i,那么添加i++,如果你真的想学习编程,你应该自己解决这个问题,而不是在这里得到答案。调试技巧是理解代码的关键。如果测试为真,那么i
会发生什么?因为测试依赖于x
和i
的值,如果它们不改变,则如果测试将保持不变。continue
语句脱离循环体返回顶部。@pointy-嗨,我可以从该代码中得到一个示例代码吗?正如上面提到的@pointy,如果你还需要更改i,那么添加i++,如果你真的想学习编程,你应该自己解决这个问题,而不是在这里得到答案。调试技巧是理解代码的关键。你能举个例子吗?while循环有什么问题吗?.forEach()
函数是为这种情况而设计的.forEach()
不是for循环。是的,它是一个函数