【发布时间】:2018-10-04 19:47:20
【问题描述】:
我有一些代码
::redo::
io.write("input: ")
var = io.read("*n")
if var then
if var > 5 and var < 10 then io.write("yes\n") goto redo
else io.write("invalid\n") goto redo end
else io.write("invalid\n") goto redo end
应该检查一个数字输入值,如果它在某个范围内,则返回。如果它不是一个数值,它应该“重做”脚本并再次要求输入。问题是,只要输入不是数字,它就会不断重复io.write("input: ") 和io.write("invalid\n"),这意味着它正在跳过var = io.read("*n") 行。 io.read("*n") 是否有特殊含义或怪癖使其无法重新评估?如果替换为io.read(),代码似乎可以工作
【问题讨论】:
标签: validation input lua