Loops Julia:嵌套循环中变量的范围
我正在尝试更改for循环中的一个变量,它位于while循环中。我知道for循环中的变量范围默认为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
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