[英]What am I missing in my Eloquent Javascript, Chessboard code?
我一直致力于 Eloquent Javascript 的棋盘挑战,而且我越来越接近。
下面是我最新的代码。 字符串中的第一行打印正确,但在第一行之后,循环仅打印 \n 并且不添加任何新的空格字符或主题标签。 有人能指出我正确的方向吗? 我的循环中缺少什么?
let a = '';
let y = 0;
for (x = 0; x < 8 ; x++, a += '\n') {
while (y < 9) {
if (x + y % 2) {
a += '#';
y ++;
} else {
a += ' ';
y ++;
}
}
}
编辑:谢谢大家的帮助,我已经进行了适当的更改,当然,它有效。 这次我非常接近,我知道它必须是一些小的东西,比如重置 y 并添加括号。
再次感谢。 我被困在这个挑战上很长一段时间,并且尽我所能不去寻找解决方案。 但我们都时不时需要帮助。
快乐编码!
我认为您应该使用 for 循环而不是 while。 首先,您忘记重置y
的值。 其次,你在if
和else
中都增加y
,所以你最好总是在 while 主体的末尾增加它,这可以用 for 循环代替。 此外,您需要在x + y % 2
表达式中用括号将 x + x + y
括起来,因为模运算符优先于加法运算符,所以它应该是(x + y) % 2
。 通过这些更改,您的代码将如下所示:
let a = ''; for (let x = 0; x < 8; x++, a += '\n') { for(let y = 0; y < 8; y++) { if ((x + y) % 2) { a += '#'; } else { a += ' '; } } } console.log(a)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.