我一直在尝试使用以下代码解决雄辩的javascript棋盘练习。这些线以正确的顺序打印,但由于某种原因我似乎找不到,循环是无限的。非常感谢您指出问题所在的任何帮助,谢谢。
我的代码如下:
var line= ['# # # #', ' # # # #']
for (var i = 0; i < 7; i ++) {
if ( i = (i-1)%2 == 0 )
console.log(line[0]);
else console.log(line[1]);
};
答案 0 :(得分:1)
i
将始终小于循环的限制,因为您在if
条件中的分配
for (var i = 0; i < 7; i ++) {
// i & 1 is a mask that matches the rightmost bit, which, if set
// indicates that a number is odd
console.log(line[i & 1]);
}
答案 1 :(得分:0)
感谢您的回答,我没有意识到在if语句中设置为i的条件的问题(新手错误)。 我将代码修改为以下代码并且它工作得很好,并且它似乎比其他解决方案中提供的代码更短:
var line= ['# # # #', ' # # # #']
for (var i = 0; i < 7; i ++) {
if ( i%2 == 0 )
console.log(line[0]);
else console.log(line[1]);
};
感谢您的时间!
答案 2 :(得分:0)
您可以使用编程计算字符,而不是使用值数组。
var html = "";
for(var i = 0; i<7; i++){
for(var j=0; j<7; j++){
html += (i+j) % 2 == 0?"# ":" ";
}
html+="<br/>"
}
document.write(html)
&#13;