tablelogin = {0 = "test1",1 = "test2",2 = "test3",3 = "test4"}
for pp=0,#table do
if takeinternalogin == (tablelogin[pp]) then
LogPrint("Login found")
else
LogPrint("failed login not found")
end
end
takeinternalogin
是我程序的一个内部功能,它接受个人的登录。
在这个脚本中,我获取了这个人的登录,并比较了登录是否在表中。
它可以工作,但是在else
之后,如果用户的登录没有在表中,它会返回消息“未能找到登录”4次,即返回检查表的次数。
我不明白。如何使消息只执行一次?
发布于 2022-07-14 05:34:17
当前,每次在表上迭代错误消息时,都会打印错误消息,而当前值不匹配。
local arr = {[0] = "test1", [1] = "test2", [2] = "test3", [3] = "test4"}
function findLogin(input)
for i,v in pairs(tablelogin) do
if v == input then
LogPrint("Login found")
return i
end
end
LogPrint("failed login not found")
end
login = findLogin(takeinternalogin)
使用返回循环中的使其脱离循环,在这种情况下永远不会到达它打印错误的行。
发布于 2022-07-14 05:33:12
首先,table
是Lua的表库。您不应该将它用作变量名。除非您向该表中添加了数字字段或将其替换为其他内容,否则#table
应该是0,因此您的循环不应该做任何事情。
但是,正如您所说的,您的循环运行了4次,我想您修改了table
。
您说internallogin
是一个函数,所以您不能在比较函数值时输入if块,函数值不能等于字符串值:takeinternalogin == (tablelogin[pp]
总是false!takeinternallogin
必须返回一个字符串。
我不清楚为什么要在这里使用#table。
https://stackoverflow.com/questions/72974772
复制相似问题