在循环中更改变量[Julia]

在循环中更改变量[Julia],julia,Julia,在Julia 1.0中,我尝试实现一个for循环,其思路如下: while t1 < 2*tmax tcol = rand() t1 = t0 + tcol t0 = t1 println(t0) end 而t1

在Julia 1.0中,我尝试实现一个for循环,其思路如下:

while t1 < 2*tmax
    tcol = rand()
    t1 = t0 + tcol

    t0 = t1
    println(t0)
end
而t1<2*tmax
tcol=rand()
t1=t0+tcol
t0=t1
println(t0)
结束

然而,我得到了t1和t0未定义的错误。如果我在他们面前放一个“全局”按钮,它会再次起作用。有没有比将全局变量放在我的代码中更好的方法来处理这个问题?

问题的原因是您正在全局范围内运行代码(可能在Julia REPL中)。在这种情况下,您必须使用
global
,如下所述

我可以推荐的最简单的方法是将代码包装在
let
块中,如下所示:

let t1=0.0, t0=0.0, tmax=2.0
    while t1 < 2*tmax
        tcol = rand()
        t1 = t0 + tcol

        t0 = t1
        println(t0)
    end
    t0, t1
end
然后使用适当的参数调用
myfun
,以获得相同的结果

function myfun(t1, t0, tmax)
    while t1 < 2*tmax
        tcol = rand()
        t1 = t0 + tcol

        t0 = t1
        println(t0)
    end
    t0, t1
end