Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Syntax Lua-if语句中的语法错误_Syntax_Lua - Fatal编程技术网

Syntax Lua-if语句中的语法错误

Syntax Lua-if语句中的语法错误,syntax,lua,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 `%'

只是尝试执行一个小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 `%'

我认为这不是一件大事,也许很清楚问题出在哪里。但不知何故,我现在看不到它。

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

您是否尝试过将“n%i==0”用括号括起来?愚蠢的问题,但有时被忽视

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

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

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

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

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

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

括号中?但它是一根弦。在我看来,LUA不计算它,或者说不,LUA不需要在表达式周围加括号,因为“if”和“then”完美地分隔了它。这是一个完美的解决方案,因为它使LUA将整个表达式作为一个布尔值处理(从而避免了神秘的错误消息)。顺便说一句,如果你这样做,它不会变成字符串…在括号里?但它是一根弦。在我看来,LUA不计算它,或者说不,LUA不需要在表达式周围加括号,因为“if”和“then”完美地分隔了它。这是一个完美的解决方案,因为它使LUA将整个表达式作为一个布尔值处理(从而避免了神秘的错误消息)。顺便说一句,如果你这样做,它不会变成一个字符串…在一个不相关的注释上,当你想检查一个数字是否为素数时,检查n-1的math.floor(math.sqrt(n))instad的根就足够了。没错,但我只使用脚本来测量不同脚本语言的执行时间。在一个不相关的注释上,当您想检查一个数字是否为素数时,检查n-1的math.floor(math.sqrt(n))instad的根就足够了。这是正确的,但我只使用脚本来测量不同脚本语言的执行时间。