我是lua的新手,我正在尝试编写一些代码来将信息发送到每个循环周期覆盖的文本文件。发送到文本文件的信息因基于增加到特定已知值的值而不同数字(本例中为3)然后按任意顺序减少到该数字以下。
这就是我被困的地方:
我想使用相同的值向文本文件发送不同的信息 但是根据值是否达到3,如果是这样的话 感。
英文示例:
我的问题:
当值满足特定elseif
条件时,我可以在另一个 无限循环内启动无限循环 。如果可能的话,我想尝试使用下面的循环结构。
我的代码看起来有点像这样:
while true do
file = assert(io.open("file.txt","w+"))
value = ipc.readSD(0x0BE8)
if value = 0
file:write("UP 0")
file:close()
elseif value = 1
file:write("UP 1")
file:close()
elseif value = 2
file:write("UP 2")
file:close()
elseif value = 3
file:write("TOP")
file:close()
--How do I trigger/start this inner loop?
while true do
--now stay in here until break
file = assert(io.open("file.txt","w+"))
value = ipc.readSD(0x0BE8)
if
value = 0
file:write("DOWN 0")
file:close()
break
elseif
value = 1
file:write("DOWN 1")
file:close()
elseif
value = 2
file:write("DOWN 2")
file:close()
else
break
else
file:write("OUTSIDE")
end
end
答案 0 :(得分:1)
您的代码中存在多个语法错误,根本不应该编译。
==
比较平等而不是=
if
/ elseif
,应始终有相应的
then
。if
/ while
/ do
块,应始终有一个
相应的end
。至于您的问题,如果我理解正确,当您不想进入内循环时,可以使用goto
模拟continue
:
while true do
value = getValue()
if value == 1 then
--not enter inner loop
goto continue
elseif value == 2 then
--enter inner loop
end
while true do
--inner loop
end
::continue::
end