Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用“继续”时卡在无限循环中_Javascript - Fatal编程技术网

Javascript 使用“继续”时卡在无限循环中

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

我编写了一个代码来循环数组,当我使用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])
}
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;
而(iloop()
如果您的目标是打印循环中的奇数,请尝试打印它们:

函数循环(){
变量x=[1,2,3,4,5,6,7,8]
var i=0;
而(iloop()
问题是无论条件是否为真,
i
都应该递增,否则它将继续无限期地反复测试相同的值

函数循环(){
常数x=[1,2,3,4,5,6,7,8]
for(设i=0;iloop()
问题是无论条件是否为真,
i
都应该递增,否则它将继续无限期地反复测试相同的值

函数循环(){
常数x=[1,2,3,4,5,6,7,8]
for(设i=0;iloop()
如果要遍历数组,请使用
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;
而(iloop()
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;
而(iloop()
之所以发生这种情况,是因为在该条件下没有增加
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循环。是的,它是一个函数