我正在尝试编写一个程序来创建一个代表8×8网格的字符串,使用换行符分隔行。在网格的每个位置处都有空格或“#”字符。角色应该成为棋盘。
将此字符串传递给console.log
应该显示如下内容:
# # # #
# # # #
# # # #
# # # #
# # # #
# # # #
# # # #
# # # #
如果您有一个生成此模式的程序,请定义变量size = 8
并更改程序,以便它适用于任何大小,输出给定宽度和高度的网格。
var hash = "#";
var space = ' ';
var size = 8;
for (var x = 1; x <= size; x++); {
var line = ' ';
for (var y = 1; y <= size; y++); {
if (x % 2) {
if (y % 2) {
line = line + space;
} else {
line = line + hash;
}
} else {
if (y % 2) {
line = line + hash;
} else {
line = line + space;
}
}
}
console.log(line);
}
我无法弄清楚为什么这不起作用...... :(
答案 0 :(得分:1)
删除循环末尾的分号:
for (var x = 1; x <= size; x++) {
var line = ' ';
for (var y = 1; y <= size; y++) {
使用分号,引擎将执行以下操作:
i
之后将为10 如果添加换行符,则显而易见
for (var i = 0; i < 10; i++);
{console.log(i);}
花括号不是for的主体,而是一个新的块。
答案 1 :(得分:0)
请确保在;
循环前删除for
- s,因为您的for
循环未在括号内正确执行逻辑(代码只会运行一次强>):
这样的事情会做你想要的:
var size = 8;
for (var y = 0; y < size; y++) {
var line = ' ';
for (var x = 0; x < size; x++) {
line += (y + x + 1) % 2 ? ' ': '#';
}
console.log(line);
}