我不明白== 0
如何与代码的remainder
部分一起使用,例如(4+4) % 2 == 0
,不会出现为4代码为其提供true
,false
,true
,false
等。
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);
答案 0 :(得分:0)
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);
按预期工作。
模数运算符返回余数。您将使用此方法创建一个棋盘图案。如果要撤消它,请使用=== 1
。如果您希望每行都相同,只需使用x%2 === 0
或x%2 === 1
答案 1 :(得分:0)
(4 + 4)%2
8/2 = 4
,剩余值为0
操作将在分割后给我们剩余价值
10%17 = 10
当我们对上述情况使用长除法时,
1)在10个答案中找到17个数是0
2)然后10 - (0 * 17)= 10
答案 2 :(得分:0)
%
是模数运算。它将返回数字除以操作数后剩下的任何内容。因此(4+4)%2
与8%2
相同。并且当2完全进入8(没有提醒)时它返回0.
答案 3 :(得分:0)
我想也许你误解了modulo的工作原理。这个例子应该打印出每个迭代模数余数是什么。如果等式的左边没有余数,则得到0。
const size = 8;
let board = "";
for (let y = 0; y < size; y++) {
for (let x = 0; x < size; x++) {
console.log(x + ' plus ' + y + ' (' + (x+y) +') modulus 2 equals ' + (x + y) %2);
board += ((x + y) % 2 === 0) ? " " : "#";
}
board += "\n";
}
console.log(board);
答案 4 :(得分:-2)
当存在除法'
时,将%(modulo)视为'余数'让我举几个例子......
10%2 = 0; // 2将进入10,五次离开剩余的0
12%2 = 0; // 2将进入12,6次并留下余数为0
5%2 = 1; // 2将进入5次,2次并留下1的剩余部分
6%3 = 0; // 3将进入6,2次并留下余数为0
3%5 = 3; // 5不能进3,所以余数是3.那是一样的 编号
(4 + 4)%2 = 0 // 8%2 = 0 ..... 2将进入8,四次并留下 余数为0