代码之家  ›  专栏  ›  技术社区  ›  okoman

lua-if语句中的语法错误

  •  1
  • okoman  · 技术社区  · 16 年前

    只是尝试执行一个小的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 回复  |  直到 15 年前
        1
  •  6
  •   David Hanak    16 年前

    可能存在版本问题,请检查您的Lua版本。将“%”用作modulo的中缀运算符只能在lua 5.1中使用,而在5.0中还不支持它。试用使用 math.mod 而是:

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

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

        2
  •  -1
  •   Derek P.    16 年前

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