基本 Lua 问题 - 嵌套在 for 循环中的 if 语句



我是Lua的业余爱好者,我写了这段代码但编译失败,我检查了语法的结构,发现是匹配的,所以我真的不知道出了什么问题,它说 18:"结束"预期(在第16行关闭"如果"(靠近"开始钓鱼" 但我为什么要这样做呢????? 顺便说一句,开始钓鱼是l之前在同一文件中定义的另一个函数。

function detectSuccess()
local count = 0;
for x = 448, 1140, 140 do
color = getColor(x, 170);
if color == 0xffffff then 
return false
startFishing()
else
return true
end
end
end

正确格式化代码我们有....

function detectSuccess()
local count = 0;
for x = 448, 1140, 140 do
color = getColor(x, 170);
if color == 0xffffff then 
return false
startFishing()
else
return true
end
end
end
detectSuccess()

startFishing()声明悬而未决。 从语法上讲,返回后唯一可以出现的东西是 else 或结束。

这是lua解析器的抱怨。

来自 lua : lua 4.4 编程

出于语法原因,中断或返回只能显示为块的最后一个语句(换句话说,作为块中的最后一个语句或就在结束、其他或直到之前(。

如果你想调用startFishing,它需要在返回之前。

function detectSuccess()
local count = 0;
for x = 448, 1140, 140 do
color = getColor(x, 170);
if color == 0xffffff then 
startFishing() -- moved before the return
return false
else
return true
end
end
end

return后不能在同一块中具有语句。我猜你的意思是:

if color == 0xffffff then 
startFishing()
return false
else
return true
end

缩进代码将帮助您查看语法问题。

最新更新