首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么if(number <=10)不起作用?

为什么if(number <=10)不起作用?
EN

Stack Overflow用户
提问于 2013-09-15 06:31:13
回答 6查看 87关注 0票数 0
代码语言:javascript
复制
var way = 'up';
var m25 = {
    'n': 10
};

for (var somelongnumber = 0; i < 10000; i++) {
    if (way === 'up') {
        m25.n = m25.n + 5;
        if (m25.n >= 90) {
            way = 'down';
        }
    } else {
        m25.n = m25.n - 5;
        if (m25.n <= 10) {
            way = 'down';
        }
    }

    console.log(way + m25.n);
}

此console.logs:

代码语言:javascript
复制
up15
up20
up25
up30
up35
up40
up45
up50
up55
up60
up65
up70
up75
up80
up85
down90
down85
down80
down75
down70
down65
down60
down55
down50
down45
down40
down35
down30
down25
down20
down15
down10
down5
down0
down-5
down-10
down-15
down-20
down-25
down-30
down-35
down-40
down-45
down-50
down-55

为什么它会超过零?我很困惑!

EN

回答 6

Stack Overflow用户

发布于 2013-09-15 06:35:30

首先,你应该格式化你的代码,使它更容易阅读。然后你可能会注意到你的错误。if (m25.n <= 10) way = 'down';应为'up'

代码语言:javascript
复制
var way = 'up';
var m25 = {
    'n': 10
};

for (var i = 0; i < 1000; i++) {
    if (way === 'up') {
        m25.n = m25.n + 5;
        if (m25.n >= 90) {
            way = 'down';
        }
    } else {
        m25.n = m25.n - 5;
        if (m25.n <= 10) {
            way = 'up';
        }
    }

    console.log(way + m25.n);
}
票数 2
EN

Stack Overflow用户

发布于 2013-09-15 06:35:12

当它看到这是<=10时,它会设置为“向下”,而您希望它是“向上”的。

票数 1
EN

Stack Overflow用户

发布于 2013-09-15 06:35:30

这是因为你永远不会重新分配到"up“。您必须编辑else中的第二个if语句。

代码语言:javascript
复制
else {
    m25.n = m25.n - 5;
    if (m25.n <= 10) {
        way = 'up';  // RIGHT HERE
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18807031

复制
相关文章

相似问题

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