条件不起作用(Discordia)

我正在尝试使用Discordia制作一个生成社会保障号码的机器人,但我的条件似乎不起作用。我尝试了一切,但是无法实现,函数正常工作,但当我输入大于30的数字时,它应该返回一个错误,但是却生成社会保障号码而不返回任何内容。以下是代码:

   if (tonumber(numg)) and (tonumber(numg) >= 0) and (math.floor(tonumber(numg)) == tonumber(numg)) then
    --函数(运行良好)
    elseif tonumber(numg) > 30 then

      message.channel:send("Muitos CPFs, por favor, insira um número menor")

    else

      message.channel:send("Insira parâmetros válidos")

    end
点赞
用户4403144
用户4403144

你的代码等同于:

function foo(numg)
    n = tonumber(numg)

    if n >= 0 and (math.floor(n) == n) then
        print("任何正整数")
    elseif n > 30 then
        print("任何带小数位且大于30的实数")
    else
        print("小于30的实数")
    end
end

因此:任何大于30且等于它的整数部分(即自然数,整数)的数字将进入第一个 if 块。只有它不是自然数时才会进入 elseif 块。

我猜这不是你想要的,但这是由你自己决定的。这样做可以更清楚地了解发生了什么。

2018-07-17 01:57:23