由于某种原因,Lua函数表现得很奇怪

时间:2014-09-27 14:06:23

标签: loops math random lua while-loop

我正在尝试在Lua中执行一个函数,它会随机选择两个数字,如果它们的余数为0,如果它们的除法结果小于10,它将返回这些数字。例如,函数应返回10和5,20和4等

以下是代码:

local num1, num2= math.random(1,100), math.random(1,10)

while ( (num1/num2 > 10 or num1/num2 < 1) and num1 % num2 ~= 0 ) do
    num1, num2= math.random(1,100), math.random(1,10)
end
print( num1 .. "  ".. num2 )

但由于某些原因,它只返回我的值,例如 20 9 ,虽然它通过“while”循环运行...任何想法为什么会发生或如何解决?

1 个答案:

答案 0 :(得分:2)

条件中的逻辑是错误的。如果 num1/num2 > 10 or num1/num2 < 1 num1 % num2 ~= 0,循环会继续查找下一个随机值。

while ( (num1/num2 > 10 or num1/num2 < 1) and num1 % num2 ~= 0 ) do

应该是:

while num1/num2 > 10 or num1/num2 < 1 or num1 % num2 ~= 0  do
--                                    ^^