繁体   English   中英

我的 Eloquent Javascript,棋盘代码中缺少什么?

[英]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的值。 其次,你在ifelse中都增加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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM