gpt4 book ai didi

javascript - 负循环 while 循环是无限循环 - 尝试在没有操作数的情况下添加

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:42:42 27 4
gpt4 key购买 nike

我正在研究一种算法,您应该在不使用 + 或 - 的情况下将 2 个整数相加。因此,我采用了这两个参数,将它们放入一个数组中,应用了一个 forEach 并在每个元素计数到 0 时将计数器递增 1。因此。

function test(a, b){

var array = [], counter = 0;
array.push(a,b);
array.forEach(function(element){
while (element > 0) {
counter ++;
element --;
}
})

return counter

}

这很好用。但是,当我通过 leetCode 运行它时,其中一个测试用例的值为负数。我错误地认为所有病例都是阳性的。我像这样重写了算法,以解决负面问题。

function test(a, b){

var array = [], counter = 0;
array.push(a,b);
console.log(array);
array.forEach(function(element){
if (element > 0){
while (element > 0) {
counter ++;
element --;
}
} else if (element < 0) {
while (element < 0);
counter --;
element ++;
}
})

return counter

}

这在纸面上运行良好,但当我在终端中运行时,它陷入了循环。至少我认为是的。没有显示任何错误消息,我已经在我能想到的每个地方记录了所有变量,而不是无休止地流式传输控制台日志号,这是我不小心创建无限循环时通常会发生的情况,光标只是坐在那里直到我按下 ctrl + c。

知道是什么导致了这种奇怪的行为吗?当我用

测试它时
console.log(text(1,-1))

我希望返回 0,

显然它一直有效,除了放置不当的括号和拼写错误。谢谢!

最佳答案

你的 while 循环有逻辑问题:

while (element < 0);
counter --;
element ++;

应该是

while (element < 0) {
counter --;
element ++;
}

更改后,您的测试用例开始正常工作。

关于javascript - 负循环 while 循环是无限循环 - 尝试在没有操作数的情况下添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42237547/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com