我正在通过以下链接玩 Lua:https://www.lua.org/pil/4.2.html https://www.lua.org/pil/4.2.html并对某一点感到困惑。
Lua 5.2.4 Copyright (C) 1994-2015 Lua.org, PUC-Rio
> x=10
> local i=1
> while i<=x do
>> local x = i*2
>> print(x)
>> i=i+1
>> end
stdin:1: attempt to compare nil with number
stack traceback:
stdin:1: in main chunk
[C]: in ?
我猜这个错误消息表明表达式有问题while i<=x
。如有任何意见,我们将不胜感激。EDIT:我只是意识到这可能是因为它在终端中不起作用。
它在交互式终端中不起作用。因为local i=1
一旦你按下回车键,终端就会将其理解为一个块。这就是为什么“尝试将 nil 与 number 进行比较”错误的原因;因为 i 未定义,即本例中为 nil 。要纠正它,请将前两行和 while 循环放在 do 卡盘内,如下所示。
> do
>> x = 10
>> local i=1
>> while i<=x do
>> local x = i*2
>> print(x)
>> i = i+1
>> end
>> end
2
4
6
8
10
12
14
16
18
20
>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)