Lua 如何检查表中的连续值?

Lua 如何检查表中的连续值?,lua,Lua,在检查表中的连续值时,我当前的代码只计算表的长度-但是,在计算非连续值时,它工作得非常好 我的尝试可以在下面的代码中看到;顶部代码是非连续计数,有效-底部代码是我尝试的、失败的连续计数代码 ——创建一个计算表中事物数量的函数 函数t计数(t、str、con) 如果con~=true,则 本地计数=0 对于v,成对(t)do——表的键/值 如果v==str,那么--if值与字符串匹配 count=count+1——将1添加到count 结束 结束 返回计数 else—连续计数代码 本地帐户=0 对

在检查表中的连续值时,我当前的代码只计算表的长度-但是,在计算非连续值时,它工作得非常好

我的尝试可以在下面的代码中看到;顶部代码是非连续计数,有效-底部代码是我尝试的、失败的连续计数代码

——创建一个计算表中事物数量的函数
函数t计数(t、str、con)
如果con~=true,则
本地计数=0
对于v,成对(t)do——表的键/值
如果v==str,那么--if值与字符串匹配
count=count+1——将1添加到count
结束
结束
返回计数
else—连续计数代码
本地帐户=0
对于k,v成对(t)do——表的键/值
如果k==1,那么——如果它是第一个索引
如果v==str,那么——如果值等于输入的字符串
cCount=cCount+1——将1添加到连续计数
结束
其他的
如果v[k]==v[k-1],那么——如果该值等于上一个值
cCount=cCount+1——将1添加到连续计数
否则,否则
cCount=1——将连续计数设置回1
结束
结束
结束
return cCount——返回连续计数值
结束
结束
--调试
阿尔法={“一”、“一”、“三”、“一”、“二”}
打印(t计数(阿尔法,“一”,假),t计数(阿尔法,“一”,真))
结果:35

我希望它在每次出现新值时重新开始计数,目前它只对每个值进行计数


我做错了什么,如何修复它?

v
是一个字符串
v[k]
v[k-1]
都是
nil
。因此,递增
cCount
的条件总是
true

t[k]==t[k-1]
或者干脆
v==t[k-1]
是正确的

为了调试这样的事情,问问自己:为什么我的计数太高了? 因为我增加太多了。 为什么我经常增加?这只有在我的情况经常是真实的情况下才有可能。让我们看看发生了什么,每次打印v[k]和v[k-1]。Ok每次两个值都为零。为什么