我在使用 lua eclipse ide 时遇到问题,有人可以帮助我吗?

时间:2021-06-22 12:31:11

标签: eclipse lua

你可以在这里看到问题

1

我开始用 lua 编程,我想做一个简单的程序。我遇到的问题是,如果我在代码中输入 if 函数,程序将无法启动并在启动时自动结束

正如您从图片中看到的,编译器说“已终止”

更新:现在代码看起来像这样

local function main()
print("insert four binary number for color encryption")
a,b,c,d = io.read("*n","*n","*n","*n")
a=n
b=n
c=n
d=n
end
main()
if(a == 1){
print(white)        
} 
then
print(black)
end

最后我把 if 移到 main() 下

现在控制台给出 nil 跟随

Exception in thread "main" com.naef.jnlua.LuaRuntimeException: ...t-win32.win32.x86_64\workspace\luabello\src\main.lua:10: attempt to call a boolean value
    at com.naef.jnlua.LuaState.lua_pcall(Native Method)
    at com.naef.jnlua.LuaState.call(LuaState.java:555)
    at org.eclipse.ldt.support.lua51.internal.interpreter.JNLua51Launcher.run(JNLua51Launcher.java:128)
    at org.eclipse.ldt.support.lua51.internal.interpreter.JNLua51Launcher.main(JNLua51Launcher.java:143)

更新 2:现在代码看起来像这样

local function main()
print("insert four binary number for color encryption")
a,b,c,d = io.read("*n","*n","*n","*n")

end
main()
a=n
b=n
c=n
d=n
if(a <= 1){
print(white)        
} 
then
else
print(black)
end

它给了我另一个错误

Exception in thread "main" com.naef.jnlua.LuaRuntimeException: ...t-win32.win32.x86_64\workspace\luabello\src\main.lua:11: attempt to compare nil with number
    at com.naef.jnlua.LuaState.lua_pcall(Native Method)
    at com.naef.jnlua.LuaState.call(LuaState.java:555)
    at org.eclipse.ldt.support.lua51.internal.interpreter.JNLua51Launcher.run(JNLua51Launcher.java:128)
    at org.eclipse.ldt.support.lua51.internal.interpreter.JNLua51Launcher.main(JNLua51Launcher.java:143)

1 个答案:

答案 0 :(得分:1)

您的 if 条件可能不是您期望的那样,

if(a == 1){
print(white)        
} 

这将尝试调用 a == 1 的结果并传递第一个参数 {print(white)} 然后评估它是否为真,但您将收到错误,因为您无法调用 {{ 1}} 因为它是一个布尔值。

我相信你的意思是:

a == 1

您还设置了 if(a == 1) then print(white) else print(black) end 两次,

  1. a,b,c,d的结果
  2. io.read("*n","*n","*n","*n") 未定义,因此将值设置为 n