我正在尝试在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”循环运行...任何想法为什么会发生或如何解决?
答案 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
-- ^^