Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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_Loops - Fatal编程技术网

Javascript代码进入无限循环

Javascript代码进入无限循环,javascript,loops,Javascript,Loops,下面的代码进入无限循环并在网页中崩溃,我需要知道它出了什么问题 for (var i = 0; i < 2; i+1) { for (var j = i; j < 8; j + 2) { console.log(arr[j].Qu); } console.log(arr[i]); } for(变量i=0;i

下面的代码进入无限循环并在网页中崩溃,我需要知道它出了什么问题

    for (var i = 0; i < 2; i+1) {
            for (var j = i; j < 8; j + 2) {
                console.log(arr[j].Qu);
            }
            console.log(arr[i]);
        }
for(变量i=0;i<2;i+1){
对于(var j=i;j<8;j+2){
console.log(arr[j].Qu);
}
控制台日志(arr[i]);
}

i+1不会更新i的值,因此,i始终具有值1,因为每次运行时它都取0+1,因此永远不会大于2,也永远不会结束 你需要用i++来改变它,就像这样

for (var i = 0; i < 2; i++) {

并且右手操作的结果会自动分配给变量

值不会重新分配给变量

 for (var i = 0; i < 2; i+=1) { // i++
            for (var j = i; j < 8; j+=2) {
                console.log(arr[j].Qu);
            }
            console.log(arr[i]);
        }
(变量i=0;i<2;i+=1){//i++ 对于(var j=i;j<8;j+=2){ console.log(arr[j].Qu); } 控制台日志(arr[i]); }
i+1
不修改i值。 您可以编写
i++

类似地,
j+2
不会更新j。 您应该编写
j+=2

以下是更正后的代码:

for (var i = 0; i < 2; i++) {
    for (var j = i; j < 8; j += 2) {
        console.log(arr[j].Qu);
    }
    console.log(arr[i]);
}
for(变量i=0;i<2;i++){
对于(var j=i;j<8;j+=2){
console.log(arr[j].Qu);
}
控制台日志(arr[i]);
}
for(变量i=0;i<2;i+=1){
对于(var j=i;j<8;j+=2){
控制台日志(arr[j]);
}
控制台日志(arr[i]);

}
对于
j
应该是
j+=2
@moaatazaamer,您必须使用赋值操作符
i=i+1
或使用增量操作符
i++
将值赋回到
i+1
,这是相同的捷径。@moaazaamer
i+1
将只返回
i+1
的值。为了将该值保存回变量中,您必须执行以下操作:
i=i+1
或速记版本
i++
@moatazaamer如果它帮助并修复了您的错误,请记住接受答案。是的,我当然会,但为什么在C(i+1)等语言上可以使用它你想在这里实现什么,现在还不清楚,为什么
j
等于
i
?@ceylamumunkucabaaş我想为我的业务中的一些业务逻辑创建基于彼此的嵌套循环也许用一句简短的话来描述这种变化会更好。:)(有时很难看出区别)
 for (var i = 0; i < 2; i+=1) { // i++
            for (var j = i; j < 8; j+=2) {
                console.log(arr[j].Qu);
            }
            console.log(arr[i]);
        }
for (var i = 0; i < 2; i++) {
    for (var j = i; j < 8; j += 2) {
        console.log(arr[j].Qu);
    }
    console.log(arr[i]);
}