我在使用Lua Eclipse IDE时遇到问题,有人可以帮我吗?

你可以在这里看到问题

1

我开始学习编程使用lua,我想编写一个简单的程序。我遇到的问题是,如果在代码中输入if函数,程序不会启动,自动在启动时结束

如图所示,编译器显示“终止”

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

local function main()
print("插入四个二进制数字进行颜色加密")
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("插入四个二进制数字进行颜色加密")
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)
点赞
用户7396148
用户7396148

你的 if 条件语句可能不是你所期望的,

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

这会试图调用 a == 1 的结果,并将 {print(white)} 作为第一个参数传递,然后评估它是否为真,但是你将会得到一个错误,因为你不能调用 a == 1 的结果,因为它是一个布尔值。

我认为你的意思是:

if(a == 1) then
    print(white)
else
    print(black)
end

此外,你设置了两次 a、b、c、d

  1. io.read("*n","*n","*n","*n") 的结果
  2. 为未定义的 n,所以这些值被设置为 nil
2021-06-22 13:48:15