条件不工作(不和谐)
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
为零时做点什么。以上是关于条件不工作(不和谐)的主要内容,如果未能解决你的问题,请参考以下文章