2014-09-27 83 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 
--         ^^ 
相關問題