Lua函数出现奇怪的问题。

我正在尝试编写一个 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 )

但由于某些原因,它只返回像 209 等值,尽管它通过了 "while" 循环...有什么想法为什么会发生这种情况或如何解决它?

点赞
用户1009479
用户1009479

这个条件语句的逻辑是错误的。如果 num1/num2 > 10 或 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
--                                    ^^
2014-09-27 14:18:12