Javascript 条件语句未执行
Javascript conditional statement not executing
我正在尝试创建一个构建棋盘的函数,但是我无法让我的第二个条件语句执行并创建一个新行。
function grid(size) {
var board = "";
for (i = 0; i <= (size * size); i++) {
if (i % 2 === 0) {
board += ' ';
} else if (i % size === 0) {
board += "\n";
} else {
board += '#';
}
}
console.log(board);
}
grid(8);
似乎 else if 语句没有执行,因为我尝试将 '\n' 和条件更改为其他内容,但没有打印任何内容。这个问题来自 Eloquent Javascript 给出的解决方案是这样的:
var size = 8;
var board = "";
for (var y = 0; y < size; y++) {
for (var x = 0; x < size; x++) {
if ((x + y) % 2 == 0)
board += " ";
else
board += "#";
}
board += "\n";
}
console.log(board);
我不确定为什么第二个有效但我的无效。
i % 2
将始终执行而不是 i % (8 * 8)
。您应该交换他们的顺序或从第二个 if
中删除 else
。
让我们分析您的代码:
if(i % size === 0)
这意味着,当 i 等于 0 或者是大小的倍数时。在你的例子中,大小是 8.
所以如果要触发,i 应该是 0,8,16,32....
在所有这些情况下,它永远不会触发,因为当 i 是 0,8,16,32... i % 2 是 0,所以它将 运行 第一个 if 而不是第二个一。您应该颠倒 ifs 或 运行 both
的顺序
我正在尝试创建一个构建棋盘的函数,但是我无法让我的第二个条件语句执行并创建一个新行。
function grid(size) {
var board = "";
for (i = 0; i <= (size * size); i++) {
if (i % 2 === 0) {
board += ' ';
} else if (i % size === 0) {
board += "\n";
} else {
board += '#';
}
}
console.log(board);
}
grid(8);
似乎 else if 语句没有执行,因为我尝试将 '\n' 和条件更改为其他内容,但没有打印任何内容。这个问题来自 Eloquent Javascript 给出的解决方案是这样的:
var size = 8;
var board = "";
for (var y = 0; y < size; y++) {
for (var x = 0; x < size; x++) {
if ((x + y) % 2 == 0)
board += " ";
else
board += "#";
}
board += "\n";
}
console.log(board);
我不确定为什么第二个有效但我的无效。
i % 2
将始终执行而不是 i % (8 * 8)
。您应该交换他们的顺序或从第二个 if
中删除 else
。
让我们分析您的代码:
if(i % size === 0)
这意味着,当 i 等于 0 或者是大小的倍数时。在你的例子中,大小是 8.
所以如果要触发,i 应该是 0,8,16,32....
在所有这些情况下,它永远不会触发,因为当 i 是 0,8,16,32... i % 2 是 0,所以它将 运行 第一个 if 而不是第二个一。您应该颠倒 ifs 或 运行 both
的顺序