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
用于循环拼图的初学者javascript_Javascript_Loops - Fatal编程技术网

用于循环拼图的初学者javascript

用于循环拼图的初学者javascript,javascript,loops,Javascript,Loops,我是javascript新手,我想知道为什么我得到了四个返回值: for(i=0; i < 10; i++) { i = i * i; console.log(i); } // 0 // 1 // 4 // 25 (i=0;i

我是javascript新手,我想知道为什么我得到了四个返回值:

for(i=0; i < 10; i++) {
    i = i * i;
    console.log(i);
}
// 0
// 1
// 4
// 25
(i=0;i<10;i++)的
{
i=i*i;
控制台日志(i);
}
// 0
// 1
// 4
// 25

因为您正在循环中设置i的值

初始i=0;打印0x0=0;i=0

下一次迭代i=1;打印1x1=1;i=1

下一次迭代i=2;打印2x2=4;i=4

下一次迭代i=5;打印5x5=25;i=25


现在i大于10,因此满足循环退出条件

因为您正在循环中设置i的值

初始i=0;打印0x0=0;i=0

下一次迭代i=1;打印1x1=1;i=1

下一次迭代i=2;打印2x2=4;i=4

下一次迭代i=5;打印5x5=25;i=25


现在i大于10,因此满足循环退出条件

循环的逻辑中有错误。 由于循环将i的值设置为自身的乘积,因此i会随着循环的每次迭代而不断增加:

i=i*i

它使i大于10(在您的示例25中),并终止循环。如果你创建了一个变量,比如说j是i*i的乘积,它会循环10次。大概是这样的:

for(i=0; i < 10; i++) {
    var j = i * i;
    console.log(j);
}
(i=0;i<10;i++)的
{
var j=i*i;
控制台日志(j);
}

循环的逻辑中有错误。 由于循环将i的值设置为自身的乘积,因此i会随着循环的每次迭代而不断增加:

i=i*i

它使i大于10(在您的示例25中),并终止循环。如果你创建了一个变量,比如说j是i*i的乘积,它会循环10次。大概是这样的:

for(i=0; i < 10; i++) {
    var j = i * i;
    console.log(j);
}
(i=0;i<10;i++)的
{
var j=i*i;
控制台日志(j);
}

执行此代码片段以获得一点解释:

var迭代=['First'、'Second'、'Third'、'4th']
var j=0;
对于(i=0;i<10;i++){
var迭代=迭代次数[j++];
log(`i=${i}的${iteration}迭代并乘以${i}x${i}=`,i*i);
i=i*i;
}
log(`for循环结束,因为i=${i}>10`)

.as控制台包装{max height:100%!important;top:0;}
执行此代码段以获得一点解释:

var迭代=['First'、'Second'、'Third'、'4th']
var j=0;
对于(i=0;i<10;i++){
var迭代=迭代次数[j++];
log(`i=${i}的${iteration}迭代并乘以${i}x${i}=`,i*i);
i=i*i;
}
log(`for循环结束,因为i=${i}>10`)

.as console wrapper{max height:100%!important;top:0;}
由于您在for语句中设置的先前条件,循环中断;“我<10”。通过在“i=i*i”中为i指定一个新值,可以覆盖为for循环提供的增量值“i++”。若要更正此问题,请将“i*i”的乘积中的值指定给不同的变量名,如“s=i*i”,这样您就可以在不中断的情况下完成循环。

由于您在for语句中设置的先前条件,循环中断;“我<10”。通过在“i=i*i”中为i指定一个新值,可以覆盖为for循环提供的增量值“i++”。若要更正此问题,请将“i*i”的乘积中的值指定给不同的变量名,如“s=i*i”,这样您就可以不间断地完成循环。

您在指定时更改了
i
的值,从而缩短了循环。快速注意:您正在将4个值记录到控制台,而没有得到4个返回值。这里有一个重要的区别:返回值是从函数调用返回的值。你期望什么?我想我期望更多的迭代,但现在已经解释了,答案很明显。你在赋值时更改了
I
的值,因此缩短了循环。快速注意:您将4个值记录到控制台,而不是4个返回值。这里有一个重要的区别:返回值是从函数调用返回的值。你期望什么?我想我期望更多的迭代,但现在解释清楚了,答案很明显。这就是我离开计算机并思考它时所怀疑的。谢谢你把它清理干净!这就是我在离开电脑思考时所怀疑的。谢谢你把它清理干净!