这个问题来自上述来源,其中我要求制作国际象棋棋盘。所提供的解决方案使用相同的方法,除了y <1。尺寸和x <尺寸。但为什么这种方式不起作用?
var size = 8;
var chess = "";
for (var y = 0; y == size; y++){
for (var x = 0; x == size; x++){
if ((x + y) % 2 == 0)
chess += " ";
else
chess += "#";
}
chess += "\n";
}
console.log(chess);
-
答案 0 :(得分:2)
您需要了解for
循环的工作原理。请在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for处阅读。
第二个子句是条件,每次循环都会检查,包括在最开始。如果它是 false ,则退出循环。循环在 true 时继续。在您的情况下,您希望保持循环,直到x
或y
达到电路板的大小(实际上,电路板的大小减去1,因为我们从0开始)。因此,以下 正确无误:
for (var y = 0; y < size; y++) {
^^^^^^^^
如果你做了你做的事,并说
for (var y = 0; y == size; y++){
^^^^^^^^^
然后循环永远不会执行。它将以x
为零开始,然后检查它是否等于它不是size
的{{1}},因此在没有执行一次的情况下退出循环。< / p>
答案 1 :(得分:1)
由于x
和y
值发生变化,for loops
的条件应为<
。
这应该有效:
var size = 8;
var chess = "";
for (var y = 0; y < size; y++){
for (var x = 0; x < size; x++){
if ((x + y) % 2 == 0)
chess += " ";
else
chess += "#";
}
chess += "\n";
}
console.log(chess);