Julia 中“while 循环”中的“未定义变量”

Yor*_*gos 3 while-loop julia julia-jump

我正在尝试使用 Julia 在 Julia 中进行敏感性分析JuMP。这是我的代码:使用 JuMP、Plots、Gurobi

m=Model(with_optimizer(Gurobi.Optimizer))


@variable(m, x>=0)
@variable(m, y>=0)
@variable(m, k>=0)

k = 0

while k<=1
    ?(x,y,k)=3*x+k*y

    @objective(m, Max, ?(x,y,k))

    @constraint(m, 2*x-4>=0)
    @constraint(m, y-0.5*x>=0)

    pl=optimize!(m)
    k=k+0.2
end
Run Code Online (Sandbox Code Playgroud)

问题是我收到一个错误:

UndefVarError: k 未定义

我错过了什么?

May*_*ana 5

julia> k =0
0

julia> while k<10
           k=k+1
       end
ERROR: UndefVarError: k not defined
Stacktrace:
 [1] top-level scope at ./REPL[11]:2
Run Code Online (Sandbox Code Playgroud)

在 julia 中,如果我们使用循环操作,我们在循环外初始化的变量默认不能在循环内直接访问。为此,我们必须将这些变量设置为全局使用,因为默认情况下它们被认为是本地的

julia> while k<10
         global  k=k+1
       end
Run Code Online (Sandbox Code Playgroud)

现在这工作正常