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:
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为什么它会超过零?我很困惑!
发布于 2013-09-15 06:35:30
首先,你应该格式化你的代码,使它更容易阅读。然后你可能会注意到你的错误。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);
}发布于 2013-09-15 06:35:12
当它看到这是<=10时,它会设置为“向下”,而您希望它是“向上”的。
发布于 2013-09-15 06:35:30
这是因为你永远不会重新分配到"up“。您必须编辑else中的第二个if语句。
else {
m25.n = m25.n - 5;
if (m25.n <= 10) {
way = 'up'; // RIGHT HERE
}
}https://stackoverflow.com/questions/18807031
复制相似问题