Lua io.write() 输出的行数不一致问题

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

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

明显,bool1 和 bool2 的值以后会被设置为其他值,但即使两个值都设置为 false,应该会并且总是会触发第三个 if 语句(我知道应该使用 elseif 和 else),但输出文本文件的长度在30534和极少情况下的30606之间变化。

当布尔值设置为不总是 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

预先感谢您的帮助

点赞