【问题标题】:Lua function acting weird for some reason由于某种原因,Lua 函数表现得很奇怪
【发布时间】:2014-11-22 09:42:21
【问题描述】:

我正在尝试在 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”循环运行......知道为什么会发生或如何解决?

【问题讨论】:

    标签: loops math random lua while-loop


    【解决方案1】:

    条件中的逻辑是错误的。如果任一 num1/num2 &gt; 10 or num1/num2 &lt; 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
    --                                    ^^
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 2018-03-20
      • 1970-01-01
      • 2020-10-02
      • 2021-07-06
      • 2022-01-20
      • 2014-02-05
      相关资源
      最近更新 更多