首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何解决条件语句不适用于Javascript中的模数?

如何解决条件语句不适用于Javascript中的模数?
EN

Stack Overflow用户
提问于 2018-10-16 01:05:18
回答 1查看 0关注 0票数 0

我的功能类似于:

代码语言:javascript
复制
if (turns % 2 > 0) {
    // do stuff
} else {
    // do other stuff
}

turns从1开始,每次点击都会递增。我确保测试它是否正常工作。

唯一的其他地方被称为函数被调用,在此函数内:

代码语言:javascript
复制
    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.");
    }
}

并在启动功能

代码语言:javascript
复制
    function startReset() {
    turns = 1;
    matchCount();
    observer();
    clearBoard();
}

没有其他功能调用它。

我还测试turns % 2 == 1了条件(并确保在控制台上打印它以查看转弯是奇数还是偶数)来检查转弯是否会切换,但它会忽略第一次使用它,重复转弯好像它是一个奇数,然后将逻辑切换到else语句中的任何内容,就好像它是奇数一样,然后继续工作。

我切换到一个布尔值来控制它并且它工作很好,我只是想了解它在世界上是如何起作用的?我之所以使用mod完全是因为我觉得如果一个数字是偶数还是奇数,它几乎是一种防火方式?

这里真正奇怪的是它是如何容易地使用boolean变量,让我真的很困惑为什么它不会起作用,因为,嗯,逻辑几乎是相同的true OR falseodd OR even

不确定扩展版本是否有助于找到这个问题,希望,我对我搞砸了很感兴趣。

EN

回答 1

Stack Overflow用户

发布于 2018-10-16 11:00:51

代码应该可以运行,但由于还没有发布您正在执行的完整测试,我们无法知道问题是否在于turns实际情况。

下面,我正在测试模数结果0,如果我正在寻找偶数,我会发现它更合乎逻辑。

代码语言:javascript
复制
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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档