为什么 if(数字 <=10) 不起作用

why does if(number <=10) not work?

本文关键字:不起作用 if 数字 为什么      更新时间:2023-09-26
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);
}

此控制台日志:

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

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

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

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);
}

当它看到 <=10 时,它会设置为"向下",当您打算将其设置为"向上"时

这是因为您永远不会将方式重新分配给"向上"。您必须在 else 中编辑您的第二个 if 语句...

else {
    m25.n = m25.n - 5;
    if (m25.n <= 10) {
        way = 'up';  // RIGHT HERE
    }
}

你还没有声明 i。相反,您正在使用某个长数...

也许你想在第二个 if 中再次up(m25.n <= 10) way = 'down';应该是"up"

而且您可能还想在somelongnumber内部i

在这里演示

你可以试试:

   if (m25.n <= 10) {
        way = 'up';
    }

和:

while (m25.n >= 0) {
    console.log(way + m25.n);
}