Syntax Lua-if语句中的语法错误
只是尝试执行一个小Lua脚本,但不幸的是我做错了什么。我不知道是什么错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 `%'
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的根就足够了。这是正确的,但我只使用脚本来测量不同脚本语言的执行时间。