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