循环 – 对于Lua上的循环

前端之家收集整理的这篇文章主要介绍了循环 – 对于Lua上的循环前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的任务是如何做一个for循环。我已经计算出来的数字,但不能说出来的名称。我想创建一个循环下来的名称列表。以下是我到目前为止:
names = {'John','Joe','Steve'}
for names = 1,3 do
  print (names)
end

我试过一些其他的东西,但它只是不工作,终端总是只是列出1,2,3 …我做错了什么?

解决方法

你的问题很简单:
names = {'John',3 do
  print (names)
end

这段代码首先声明一个名为names的全局变量。然后,你启动一个for循环。 for循环声明一个局部变量,刚刚被称为名称;事实上变量以前用名称定义是完全不相关的。在for循环中任何使用名称都将引用本地引用,而不是全局引用。

for循环说,循环的内部将使用names = 1,然后names = 2,最后names = 3来调用。for循环声明一个从第一个数到最后一个计数的计数器,它将调用内部代码为其计数的每个值一次。

你真正想要的是这样的:

names = {'John','Steve'}
for nameCount = 1,3 do
  print (names[nameCount])
end

[]语法是如何访问Lua表的成员的。 Lua表将“键”映射到“值”。您的数组自动创建整数类型的键,其增加。因此在表中与“Joe”相关联的键是2(Lua索引总是从1开始)。

因此,你需要一个从1到3的for循环,你得到。您可以使用count变量来访问表中的元素。

然而,这有一个缺陷。如果从列表中删除其中一个元素,会发生什么?

names = {'John','Joe'}
for nameCount = 1,3 do
  print (names[nameCount])
end

现在,我们得到John Joe nil,因为尝试访问不存在的表中的值会导致nil。为了防止这种情况,我们需要从1到表的长度:

names = {'John',#names do
  print (names[nameCount])
end

#是长度运算符。它适用于表和字符串,返回其长度。现在,无论多么大或小的名字得到,这将总是工作。

但是,有一个更方便的方法来遍历一个项目数组:

names = {'John','Steve'}
for i,name in ipairs(names) do
  print (name)
end

ipairs是一个遍历列表的Lua标准函数。这种风格的for循环,迭代器for循环,使用这种迭代器函数。 i值是数组中条目的索引。名称值是该索引处的值。所以它基本上做了很多grunt工作为你。

原文链接:https://www.f2er.com/lua/275113.html

猜你在找的Lua相关文章