Lua "if then" 语句出错(预期 'end'(在第 28 行关闭 'if'))
Error with Lua "if then" statements ('end' expected (to close 'if' at line 28))
我收到一个错误
bios:14: [string "Lighting"]:58: 'end' expected (to close 'if' at line 28)
老实说,我不知道自己在做什么,因为我是 Lua 的新手,而且一般来说是编码。我认为这与某处没有 end
有关。
term.clear()
term.setCursorPos(17, 4)
print("Welcome")
sleep(2)
term.setCursorPos(8, 5)
print("What lights would you like to control?")
input = read()
if input == "Hall" then
term.clear()
term.setCursorPos(17,4)
print("On or Off?")
input = read()
if input == "on" then
redstone.setOutput("back", true)
print("Hall Lighting Turned On")
sleep(5)
shell.run("Lighting")
else
redstone.setOutput("back", false)
print("Hall Lighing Turned Off")
sleep(5)
shell.run("Lighting")
if input == "Bedroom" then
term.clear()
term.setCursorPos(17,4)
print("On or Off")
input = read()
if input == "on" then
redstone.setOutput("left", true)
print("Bedroom Lighting Turned On")
sleep(5)
shell.run("Lighting")
else
redstone.setOutput("left", false)
print("Bedroom Lighing Turned Off")
sleep(5)
shell.run("Lighting")
if input == "Labs" then
term.clear()
term.setCursorPos(17,4)
print("On or Off?")
input = read()
if input == "on" then
redstone.setOutput("right", true)
print("Lab Lighting Turned On")
sleep(5)
shell.run("Lighting")
else
redstone.setOutput("right", false)
print("Lab Lighing Turned Off")
sleep(5)
shell.run("Lighting")
end
else
print("Error")
sleep(3)
shell.run("Lighting")
end
您好几个地方好像漏了 end
个字。
结构应该是这样的:
if ... then
some code
else
some optional code
end
此外,尝试更好地缩进代码。届时你应该清楚应该把 end
个单词放在哪里。
你想要的大概是:
term.clear()
...
input = read()
if input == "Hall" then
...
if input == "on" then
...
else
redstone.setOutput("back", false)
shell.run("Lighting")
end -- missing end!
end -- missing end!
if input == "Bedroom" then
...
if input == "on" then
...
else
redstone.setOutput("left", false)
...
shell.run("Lighting")
end -- missing end!
end -- missing end!
...
我收到一个错误
bios:14: [string "Lighting"]:58: 'end' expected (to close 'if' at line 28)
老实说,我不知道自己在做什么,因为我是 Lua 的新手,而且一般来说是编码。我认为这与某处没有 end
有关。
term.clear()
term.setCursorPos(17, 4)
print("Welcome")
sleep(2)
term.setCursorPos(8, 5)
print("What lights would you like to control?")
input = read()
if input == "Hall" then
term.clear()
term.setCursorPos(17,4)
print("On or Off?")
input = read()
if input == "on" then
redstone.setOutput("back", true)
print("Hall Lighting Turned On")
sleep(5)
shell.run("Lighting")
else
redstone.setOutput("back", false)
print("Hall Lighing Turned Off")
sleep(5)
shell.run("Lighting")
if input == "Bedroom" then
term.clear()
term.setCursorPos(17,4)
print("On or Off")
input = read()
if input == "on" then
redstone.setOutput("left", true)
print("Bedroom Lighting Turned On")
sleep(5)
shell.run("Lighting")
else
redstone.setOutput("left", false)
print("Bedroom Lighing Turned Off")
sleep(5)
shell.run("Lighting")
if input == "Labs" then
term.clear()
term.setCursorPos(17,4)
print("On or Off?")
input = read()
if input == "on" then
redstone.setOutput("right", true)
print("Lab Lighting Turned On")
sleep(5)
shell.run("Lighting")
else
redstone.setOutput("right", false)
print("Lab Lighing Turned Off")
sleep(5)
shell.run("Lighting")
end
else
print("Error")
sleep(3)
shell.run("Lighting")
end
您好几个地方好像漏了 end
个字。
结构应该是这样的:
if ... then
some code
else
some optional code
end
此外,尝试更好地缩进代码。届时你应该清楚应该把 end
个单词放在哪里。
你想要的大概是:
term.clear()
...
input = read()
if input == "Hall" then
...
if input == "on" then
...
else
redstone.setOutput("back", false)
shell.run("Lighting")
end -- missing end!
end -- missing end!
if input == "Bedroom" then
...
if input == "on" then
...
else
redstone.setOutput("left", false)
...
shell.run("Lighting")
end -- missing end!
end -- missing end!
...