[Lua语言基础]-7、for循环和while循环语句

[复制链接]
查看2149 | 回复0 | 2021-8-17 21:42:08 | 显示全部楼层 |阅读模式
  1. --[[-- for 循环
  2. for 语句结构:
  3.         for 变量名称=初始值,结束值,(步长) do
  4.                 [循环体]
  5.         end

  6. 注意1:
  7.        
  8.         --]]

  9. -- 学习for 循环关键字
  10. --[[for        i=1,10 do
  11.         print('循环次数i='..i)
  12. end--]]

  13. -- 使用for 循环的“步长”
  14. --[[for i=1,10,2 do
  15.         print('循环数i='..i)
  16. end--]]

  17. -- ipair 与 pair 迭代器
  18. --[[for 循环分为 数值循环,泛型循环(类似C#中的foreach)

  19. ipairs 遍历顺序的集合.(中间序号不能中断,遇到nil 数值就停止)。
  20.         一般用于数组类型集合的遍历。paris 遍历集合中所有数据。(序号可以中断)
  21.         一般用于键值对类型的集合遍历。
  22.        
  23. 泛型循环定义:
  24.         for 变量列表 in 迭代函数 do
  25.                 [循环体]
  26.         end--]]
  27.        
  28. -- 泛型for循环(使用迭代器关键字)
  29. --[[myArray = {1,2,3,6,5,7,10,20,30}        -- 定义“表”(相当于C#数组与集合类)
  30. for k,v in ipairs(myArray) do
  31.         print(k,' ',v)
  32. end--]]

  33. -- 定义循环输出具备“键值对”集合的数据,必须使用pairs 关键字
  34. --[[myArray = {num1="张三",num2="张四",num3="张五"}                -- 定义“表”(具备"键值对")

  35. for k,v in pairs(myArray)do
  36.         print(k,' ',v)
  37. end--]]

  38. -- for 循环“数组”类型的表
  39. -- 注意使用pairs 关键字 ,循环使用数组类型 的表时,for中必须使用 k,v
  40. -- k,v 可以是任何怎么或合法标识符代替。
  41. --[[myArray = {1,2,3,6,5,7,10,20,30}
  42. for k,v in pairs(myArray) do
  43.         print(k,' ',v)
  44. end--]]

  45. -- 输出“字符串”类型的数组(表)
  46. --[[myArrayName = {'罗辑','常伟斯','叶文洁'}
  47. for k,v in pairs(myArrayName) do
  48.         print(k,' ',v)
  49. end--]]

  50. -- for 编程题:输出1-100所有偶数累加和
  51. --[[sum = 0
  52. for i=1,100 do
  53.         if(i%2==0)then
  54.                 sum = sum + i
  55.         end
  56.        
  57. end
  58. print('输出1-100所有偶数累加和='..sum)--]]

  59. -- 循环终止关键字:break(循环终止)
  60. --[[        注意:lua中没有“continue”关键字语法
  61. 注意:
  62.         lua标准库中提供了几种迭代器:
  63.         1.迭代文件每一行的io.lines
  64.         2.迭代table元素的pairs
  65.         3.迭代数组元素的ipairs
  66.         4.迭代字符串中单词的string.gmatch等--]]


  67. -- 循环体中循环终止关键字break
  68. print('输出1-10 十个数字')
  69. for i=1,1000 do
  70.         if(i>10)then
  71.                 break                -- break关键字终止循环
  72.         end
  73.         print(i)
  74. end
复制代码
  1. -- while 循环
  2. --[[while 结构(先判断,后实现)
  3.         while(...)do
  4.                 todo...
  5.         end
  6. --]]
  7. print('学习while 与repeat 关键字')
  8. --[[while(true)do
  9.         print('循环输出')
  10.        
  11. end
  12. --]]

  13. --[[print('循环输出1到100')
  14. i = 1
  15. while(i<=100)do
  16.         print(i)
  17.         i =i+1                -- C# 语句中有 i++/++i ,lua没有。
  18. end

  19. --]]

  20. -- 输出1-100所有偶数的累加和
  21. --[[i = 1
  22. sum = 0

  23. while(i<=100)do
  24.         if(i%2==0)then
  25.                 sum = sum +i
  26.         end
  27.         i = i+1
  28. end
  29. print('输出1-100所有偶数的累加和='..sum)--]]

  30. -- repeat 关键字(先循环实现,后判断。相当于C# do...while)
  31. print('使用repeat 输出1-100')
  32. j = 1        -- 循环变量
  33. repeat
  34.         print(j)
  35.         j=j+1
  36. until(j>100)
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则