Loops Julia:嵌套循环中变量的范围

Loops Julia:嵌套循环中变量的范围,loops,scope,julia,Loops,Scope,Julia,我正在尝试更改for循环中的一个变量,它位于while循环中。我知道for循环中的变量范围默认为local,因此我在要更改的变量前面放了一个global。这适用于i,但不适用于turn。 当我在for循环中的turn前面添加global时,我得到以下错误: 错误:LoadError:语法:全局turn:turn是其封闭范围内的局部变量 但我想要的是: Turn: 1 Turn: 2 Turn: 3 Turn: 4 Turn: 5 Turn: 6 Turn: 7 Turn: 8 如何在嵌套的fo

我正在尝试更改for循环中的一个变量,它位于while循环中。我知道for循环中的变量范围默认为
local
,因此我在要更改的变量前面放了一个
global
。这适用于
i
,但不适用于
turn
。 当我在for循环中的
turn
前面添加
global
时,我得到以下错误:

错误:LoadError:语法:
全局turn
:turn是其封闭范围内的局部变量

但我想要的是:

Turn: 1
Turn: 2
Turn: 3
Turn: 4
Turn: 5
Turn: 6
Turn: 7
Turn: 8

如何在嵌套的for循环中更改
转弯

我可以通过在while循环外移动转弯来获得所需的输出。作为记录,我在运行代码时也没有遇到错误。你用的是什么版本的朱莉娅

i = 0
turn = 0
while(i <= 3)
    global i += 1
    for j = 1:2
        global turn += 1  
        println("Turn: ", turn)
    end
end
i=0
转动=0

虽然(i如果您想使用
Turn
来计算
-for
-loop的内部
,是否应该在
while
-loop之外定义它?这是正确的。但是,我不太明白为什么。由于“Turn=0”在while循环中,所以实际上每次运行内部for循环之前都会将局部变量“Turn”重置为0。N注意:没有预定义的全局变量“turn”,这就是错误所抱怨的;)谢谢你的解释!你说得对,把转弯放在while循环之外是有效的。谢谢。我使用的是1.0版。上面的代码工作得很好,但是在
turn
变量前面添加
global
会导致一个错误。@HansBambel它应该会给你一个错误,因为你的代码中的
turn
是一个局部变量ble并且您的代码中没有定义全局
回合
(因此您不能引用全局
回合
)。代码中的问题是
回合
在每次
迭代时都会被归零,这就是为什么您没有得到想要的结果。感谢您的解释!
Turn: 1
Turn: 2
Turn: 3
Turn: 4
Turn: 5
Turn: 6
Turn: 7
Turn: 8
i = 0
turn = 0
while(i <= 3)
    global i += 1
    for j = 1:2
        global turn += 1  
        println("Turn: ", turn)
    end
end