- --[[-- for 循环
- for 语句结构:
- for 变量名称=初始值,结束值,(步长) do
- [循环体]
- end
- 注意1:
-
- --]]
- -- 学习for 循环关键字
- --[[for i=1,10 do
- print('循环次数i='..i)
- end--]]
- -- 使用for 循环的“步长”
- --[[for i=1,10,2 do
- print('循环数i='..i)
- end--]]
- -- ipair 与 pair 迭代器
- --[[for 循环分为 数值循环,泛型循环(类似C#中的foreach)
- ipairs 遍历顺序的集合.(中间序号不能中断,遇到nil 数值就停止)。
- 一般用于数组类型集合的遍历。paris 遍历集合中所有数据。(序号可以中断)
- 一般用于键值对类型的集合遍历。
-
- 泛型循环定义:
- for 变量列表 in 迭代函数 do
- [循环体]
- end--]]
-
- -- 泛型for循环(使用迭代器关键字)
- --[[myArray = {1,2,3,6,5,7,10,20,30} -- 定义“表”(相当于C#数组与集合类)
- for k,v in ipairs(myArray) do
- print(k,' ',v)
- end--]]
- -- 定义循环输出具备“键值对”集合的数据,必须使用pairs 关键字
- --[[myArray = {num1="张三",num2="张四",num3="张五"} -- 定义“表”(具备"键值对")
- for k,v in pairs(myArray)do
- print(k,' ',v)
- end--]]
- -- for 循环“数组”类型的表
- -- 注意使用pairs 关键字 ,循环使用数组类型 的表时,for中必须使用 k,v
- -- k,v 可以是任何怎么或合法标识符代替。
- --[[myArray = {1,2,3,6,5,7,10,20,30}
- for k,v in pairs(myArray) do
- print(k,' ',v)
- end--]]
- -- 输出“字符串”类型的数组(表)
- --[[myArrayName = {'罗辑','常伟斯','叶文洁'}
- for k,v in pairs(myArrayName) do
- print(k,' ',v)
- end--]]
- -- for 编程题:输出1-100所有偶数累加和
- --[[sum = 0
- for i=1,100 do
- if(i%2==0)then
- sum = sum + i
- end
-
- end
- print('输出1-100所有偶数累加和='..sum)--]]
- -- 循环终止关键字:break(循环终止)
- --[[ 注意:lua中没有“continue”关键字语法
- 注意:
- lua标准库中提供了几种迭代器:
- 1.迭代文件每一行的io.lines
- 2.迭代table元素的pairs
- 3.迭代数组元素的ipairs
- 4.迭代字符串中单词的string.gmatch等--]]
- -- 循环体中循环终止关键字break
- print('输出1-10 十个数字')
- for i=1,1000 do
- if(i>10)then
- break -- break关键字终止循环
- end
- print(i)
- end
复制代码- -- while 循环
- --[[while 结构(先判断,后实现)
- while(...)do
- todo...
- end
- --]]
- print('学习while 与repeat 关键字')
- --[[while(true)do
- print('循环输出')
-
- end
- --]]
- --[[print('循环输出1到100')
- i = 1
- while(i<=100)do
- print(i)
- i =i+1 -- C# 语句中有 i++/++i ,lua没有。
- end
- --]]
- -- 输出1-100所有偶数的累加和
- --[[i = 1
- sum = 0
- while(i<=100)do
- if(i%2==0)then
- sum = sum +i
- end
- i = i+1
- end
- print('输出1-100所有偶数的累加和='..sum)--]]
- -- repeat 关键字(先循环实现,后判断。相当于C# do...while)
- print('使用repeat 输出1-100')
- j = 1 -- 循环变量
- repeat
- print(j)
- j=j+1
- until(j>100)
复制代码
|