你可以在这里看到问题
我开始用 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)
答案 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
两次,
a,b,c,d
的结果io.read("*n","*n","*n","*n")
未定义,因此将值设置为 n