Lua - if语句中的语法错误

时间:2009-01-20 20:32:53

标签: syntax lua

只是尝试执行一个小的Lua脚本,但不幸的是我做错了。我没有更多的想法可能是错误。

function checkPrime( n )
    for i = 2, n-1, 1 do
        if n % i == 0 then
            return false
        end
    end
    return true
end

口译员说:

lua: /home/sebastian/luatest/test.lua:3: `then' expected near `%'

我认为这不是一件大事,也许很清楚是什么问题。但不知怎的,我现在看不到它。

2 个答案:

答案 0 :(得分:6)

可能存在一些版本问题,请检查您的lua版本。使用'%'作为模数的中缀运算符只能在Lua 5.1中使用,在5.0中它尚不支持。请尝试使用math.mod

if math.mod(n,i) == 0 then

修改:另请注意,在5.1中,math.mod仍然存在,但已重命名为math.fmod。目前,旧名称仍然有效,但在将来的版本中可能会删除支持。

答案 1 :(得分:-1)

您是否尝试在括号中包装“n%i == 0”?愚蠢的问题,但有时被忽视了!