Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua-For循环:保存控制变量的值_Lua - Fatal编程技术网

Lua-For循环:保存控制变量的值

Lua-For循环:保存控制变量的值,lua,Lua,我很难理解doc()中的示例,需要一些说明 如果在循环后需要控制变量的值(通常在断开循环时),则必须将该值保存到另一个变量中: -- find a value in a list local found = nil for i=1,a.n do if a[i] == value then found = i -- save value of `i' break end end print(found) 我不理解a.n和如果a[I]==值,那么部分。他们是否正在

我很难理解doc()中的示例,需要一些说明

如果在循环后需要控制变量的值(通常在断开循环时),则必须将该值保存到另一个变量中:

-- find a value in a list
local found = nil
for i=1,a.n do
  if a[i] == value then
    found = i      -- save value of `i'
    break
  end
end
print(found)
我不理解
a.n
如果a[I]==值,那么
部分。他们是否正在创建一个表
a={n=5,…}
,并调用单个值,如
a.n=5

我想我需要一个书面的解释,说明例子中发生了什么,遗漏了什么,或者一个完整的例子。我猜它缺少表/变量的声明

因为
a[i]
正在调用
a={}
的条目,而我不明白“value”是什么。。。?我必须先声明一个变量,然后设置为一个特定的值。。。?但它有什么价值呢

当我将
a.n
定义为我要处理的条目时,为什么要调用表中的其他条目(即
a[I]

在这种情况下,我是否必须定义一个条目,我希望控制变量通过预定义这个数字来打开,这就是值设置为

如果我已经定义了控制变量的值,那么调用控制变量的值就没有意义了。我很困惑。就像我理解的,如果例子是:

local found = nil
local a=7
for i=1,a do
  print(i)
  found=a
  break
end
但是
print(found)
等于7,而不是
循环(2或1?)的不完整
的最后一次迭代

我所寻找的是一种方法,当循环被中断时,保存控制变量开启的任何数字


因此,如果i=1,5是
,那么。。。最后一次打印的迭代是4,我怎么称呼这个值?我不确定文档是否在其示例中提供了该信息。

完整的工作示例可能如下所示:

local function find_value_in_list(value, a)
    -- find a value in a list and print its index
    local found = nil
    for i=1, a.n do
      if a[i] == value then
        found = i      -- save value of `i'
        break
      end
    end
    print(found)
end    

find_value_in_list(33, {n=4, 11, 22, 33, 44})  --> 3
find_value_in_list(42, {n=4, 11, 22, 33, 44})  --> nil

他们是否正在创建一个表a={n=5,…}并调用单个值,如a.n=5?
是。字段
n
经常用于包含数组的长度是否必须声明此“值…”。。。?如果没有其他声明,那么声明local found=nil有什么意义?一个[我]将成为什么样的人?如果它是a={n=5},它不是必须是i=1吗?但这不是只有在你做一个循环时才有效吗。我只看到它对a.n[I]=值起作用,其中a={n={1,2,3…}},但它写为a[I]。我需要一个有效的例子,我不知道写的是有效的代码还是填空。有人能举个例子吗?好的,我明白。这是设置一个循环,在该循环中,它在表中的所需值上中断,然后在该中断处将控制变量的索引记录为变量“found”。但问题是:您说字段n(我猜字段与表中的条目相同,即“条目n”)经常用于包含数组的长度。但是字段n也是表中的一个条目。所以如果我想用#table打印表的长度,我会得到一个值5,而n=4?假设一个数组(只是一个表设置为数字)有#table-1条目是正常的吗?我也不明白,如果我将表定义为a,print(a[3])为什么会给我33的值。第三个指数是22。。?为什么print(a[1])=11,我想应该是=n=4。编辑:好的,不管怎样从我的测试中我看到变量被排除在表的索引之外。@kite只适用于表中具有整数键的字段
n
在本例中不是一个变量,而是一个值为
“n”
的字符串键。