为什么这会产生无限循环? - Codeacademy Js课程

时间:2017-06-28 06:04:19

标签: javascript infinite-loop

我目前正在参加Codeacademy的基础Js课程,并正在测试使用while循环场景 当我尝试这个时(见下面的代码),我的浏览器标签崩溃了 我认为这是因为我创造了一个无限循环。

有人可以向我指出问题吗?

var timeIs = 0

var addTime_1 = function(time){
    var newTime = time + 1;
    return newTime;
}

var addTimes = function(times){
    while (times<10){
        addTime_1(times)
    }
}


addTimes(timeIs)

3 个答案:

答案 0 :(得分:0)

addTime_1实际上并未更改times的值。它只返回用+1调用它的值。

由于times永远不会设置为任何新内容,因此它始终保持为0。

由于0总是小于10,所以我们有一个无限循环。

编辑: 与其他人说的一样,目的是将times设置为从addTime_1返回的值,即times = addTime_1(times)

答案 1 :(得分:0)

您需要了解变量范围的概念。以及return关键字

的目的

newTime是一个全新的变量,除非您明确说明,否则times不会更新。

times = addTime_1(times);

答案 2 :(得分:0)

您可能还需要考虑使用for()循环代替while(),以便知道您希望循环运行的次数(在此示例中为10次)。通过这种方式,您可以对循环进行更多控制,因为您可以选择循环如何递增。