有人可以解释这个 for 循环中发生了什么吗?
Can someone explain what's going on in this for loop?
还请附上一个可追踪表,显示每个位置的每个变量的值。谢谢。当它 returns 为真时,它表示该数组是一个回文数组。当它 returns false 时,表示该数组不是回文。代码可以工作,但我只需要解释为什么或如何工作。
var x = readNumberOfEntries();
var w = new Array(x);
for (var y = 0; y < x; y++) {
var z = Number(prompt("Enter entry"));
w[y] = z;
}
var r = w.length;
for (var i = 0; i < (r/2); i++) {
if (w[i] !== w [r-1-i]) {
return false;
}
return true;
}
}
第一个 for 循环用用户输入的值填充长度为 x 的数组。
第二个 for 循环检查这样的数组 [1,2,3,3,2,1]。
所以它检查下半场数组是否反转。
尽管由于 return 的原因,for 循环首先会被取消 运行。
因此,如果数组的第一项等于最后一项,它将 return 为真,否则为假。
还请附上一个可追踪表,显示每个位置的每个变量的值。谢谢。当它 returns 为真时,它表示该数组是一个回文数组。当它 returns false 时,表示该数组不是回文。代码可以工作,但我只需要解释为什么或如何工作。
var x = readNumberOfEntries();
var w = new Array(x);
for (var y = 0; y < x; y++) {
var z = Number(prompt("Enter entry"));
w[y] = z;
}
var r = w.length;
for (var i = 0; i < (r/2); i++) {
if (w[i] !== w [r-1-i]) {
return false;
}
return true;
}
}
第一个 for 循环用用户输入的值填充长度为 x 的数组。
第二个 for 循环检查这样的数组 [1,2,3,3,2,1]。 所以它检查下半场数组是否反转。
尽管由于 return 的原因,for 循环首先会被取消 运行。
因此,如果数组的第一项等于最后一项,它将 return 为真,否则为假。