我的功能类似于:
if (turns % 2 > 0) {
// do stuff
} else {
// do other stuff
}
turns
从1开始,每次点击都会递增。我确保测试它是否正常工作。
唯一的其他地方被称为函数被调用,在此函数内:
function printSymbol(tile) {
if (document.winner != null) {
setMessage(document.winner + " won. " + "Do you want to play again?");
} else if (tile.innerText == '') {
tile.innerText = document.symbol;
observer();
turns++;
} else if (document.winner == null && turns < 9) {
setMessage("This tile is taken. Still " + document.player + "'s turn.");
}
}
并在启动功能
function startReset() {
turns = 1;
matchCount();
observer();
clearBoard();
}
没有其他功能调用它。
我还测试turns % 2 == 1
了条件(并确保在控制台上打印它以查看转弯是奇数还是偶数)来检查转弯是否会切换,但它会忽略第一次使用它,重复转弯好像它是一个奇数,然后将逻辑切换到else
语句中的任何内容,就好像它是奇数一样,然后继续工作。
我切换到一个布尔值来控制它并且它工作很好,我只是想了解它在世界上是如何起作用的?我之所以使用mod
完全是因为我觉得如果一个数字是偶数还是奇数,它几乎是一种防火方式?
这里真正奇怪的是它是如何容易地使用boolean
变量,让我真的很困惑为什么它不会起作用,因为,嗯,逻辑几乎是相同的true OR false
和odd OR even
。
不确定扩展版本是否有助于找到这个问题,希望,我对我搞砸了很感兴趣。
发布于 2018-10-16 11:00:51
代码应该可以运行,但由于还没有发布您正在执行的完整测试,我们无法知道问题是否在于turns
实际情况。
下面,我正在测试模数结果0
,如果我正在寻找偶数,我会发现它更合乎逻辑。
function isEven(turns){
if (turns % 2 === 0) {
console.log(turns + " is even");
} else {
console.log(turns + " is odd");
}
}
let nums = [1,2,3,4,5,6,7,8,9,10];
nums.forEach(isEven);
https://stackoverflow.com/questions/-100002905
复制相似问题