2014-09-27 77 views
1

我想在Lua中做一个函数,它将随机选择两个数字,如果它们的余数为0,并且它们的除法结果小于10,它将返回这些数字。例如,函数应该返回10和5,20和4等Lua函数代理怪异由于某种原因

下面的代码:

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) 

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

回答

2

条件中的逻辑错误。如果或者num1/num2 > 10 or num1/num2 < 1num1 % 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 
--         ^^ 
相关问题