条件不工作(不和谐)

Posted

技术标签:

【中文标题】条件不工作(不和谐)【英文标题】:conditions not working (Discordia) 【发布时间】:2018-12-24 14:31:54 【问题描述】:

我正在尝试制作一个使用 Discordia 生成社会安全号码的不和谐机器人,但我的条件似乎不起作用。我尝试了一切,但我做不到,该功能正常工作,但是当我输入一个高于 30 的数字时,它应该返回一个错误,但它会生成社会安全号码而不返回任何内容。代码如下:

   if (tonumber(numg)) and (tonumber(numg) >= 0) and (math.floor(tonumber(numg)) == tonumber(numg)) then
    --the function (working well)
    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

【问题讨论】:

【参考方案1】:

您的代码相当于:

function foo(numg)
    n = tonumber(numg)

    if n >= 0 and (math.floor(n) == n) then
        print("any positive, natural number")
    elseif n > 30 then     
        print("any real number (with decimal portion) greater than 30")   
    else     
        print("real numbers less than 30")      
    end
end

所以:任何大于 30 且等于其下限的数(即,它是自然数、整数)都将进入第一个 if 块。只有在不是自然数的情况下才会进入elseif块。

我的猜测是不是你想要的,但这是由你决定的。这样会更清楚发生了什么。

【讨论】:

最好将 n 设为本地并在 n 为零时做点什么。

以上是关于条件不工作(不和谐)的主要内容,如果未能解决你的问题,请参考以下文章

C#不和谐机器人不工作[关闭]

无法安装不和谐/作品

我的不和谐机器人没有上线 - 不和谐 v13

如何防止不和谐机器人python中的SQL注入攻击

使用不和谐 JDA 清除聊天

我的不和谐机器人在 13.0.0 之后无法工作