If statement WHILE循环仅在ELSEIF条件为true时开始
我是lua的新手,正在尝试编写一些代码,将信息发送到每个循环周期都会覆盖的文本文件。发送到文本文件的信息根据一个值的不同而不同,该值增加到一个特定的已知数字(本例中为3),然后以任何顺序减小到该数字以下 这就是我被困的地方: 我想使用相同的值向文本文件发送不同的信息 但基于该值是否已达到3,如果 理智 英文示例:If statement WHILE循环仅在ELSEIF条件为true时开始,if-statement,file-io,lua,If Statement,File Io,Lua,我是lua的新手,正在尝试编写一些代码,将信息发送到每个循环周期都会覆盖的文本文件。发送到文本文件的信息根据一个值的不同而不同,该值增加到一个特定的已知数字(本例中为3),然后以任何顺序减小到该数字以下 这就是我被困的地方: 我想使用相同的值向文本文件发送不同的信息 但基于该值是否已达到3,如果 理智 英文示例: 如果值为2且未达到3,则写入:向上2 如果值为2且已达到3,则写下:向下2 如果值为3,则写入:TOP 我的问题: 当某个值满足特定的elseif条件时,是否可以在另一个无限whi
- 如果值为2且未达到3,则写入:向上2
- 如果值为2且已达到3,则写下:向下2
- 如果值为3,则写入:TOP
elseif
条件时,是否可以在另一个无限while循环内部启动无限while循环。如果可能的话,我想尝试使用下面的循环结构
我的代码看起来有点像这样:
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
代码中有几个语法错误,根本不应该编译
- 使用
比较相等,而不是=
=
- 对于每个
/if
,都应该有一个对应的elseif
然后
- 对于每个
/if
而
/
块,应该始终有一个 相应的do
结束
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