Lua io.write()未提供一致的行数

Lua io.write()未提供一致的行数,lua,txtextcontrol,Lua,Txtextcontrol,这是我的代码,我想在我的遗传学习算法中使用它来合并包含权重的文件 partab和enttab列表长度相等且足够长 很明显,bool1和bool2值稍后将被设置为其他值,但即使它们都设置为false,也会触发第三个if(我知道我应该使用elseif和else),但输出文本文件的长度在30534和30606之间变化 当bools设置为不总是true时,情况会发生更大的变化,但我甚至不知道是什么导致了这种变化,因为输出文档应该有一致的行数 此外,即使partab和enttab表格为常量,输出的行数也会

这是我的代码,我想在我的遗传学习算法中使用它来合并包含权重的文件

partab和enttab列表长度相等且足够长

很明显,bool1和bool2值稍后将被设置为其他值,但即使它们都设置为false,也会触发第三个if(我知道我应该使用elseif和else),但输出文本文件的长度在30534和30606之间变化

当bools设置为不总是true时,情况会发生更大的变化,但我甚至不知道是什么导致了这种变化,因为输出文档应该有一致的行数

此外,即使partab和enttab表格为常量,输出的行数也会发生变化

innumber=30603  
i=1
while innumber>0 do
    local bool1=false
    local bool2=false

    if bool1 then

            io.write(partab[i],"\n")
            i=i+1
            innumber=innumber-1
    end 

    if (not bool1 )and bool2 then 
            io.write((math.random(2100000)/1000000)-1,"\n")
            i=i+1
            innumber=innumber-1
    end 

    if (not bool1 )and (not bool2) then
                io.write(enttab[i],"\n")
                i=i+1
                innumber=innumber-1
    end



end

首先,感谢您的帮助

正在缓冲输出。使用
io.flush()
。另一个选项是使用
io。stdout:setvbuf('no')
正在缓冲输出。使用
io.flush()
。另一个选项是使用
io.stdout:setvbuf('no')