• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

通过例子学习Lua(2)---Lua流程控制

发布: 2007-7-04 20:48 | 作者: admin | 来源:  网友评论 | 查看: 77次 | 进入软件测试论坛讨论

领测软件测试网

1. 函数的使用
  以下程序演示了如何在Lua中使用函数, 及局部变量
  例e02.lua
  -- functions
  function pythagorean(a, b)
  local c2 = a^2 + b^2
  return sqrt(c2)
  end
  print(pythagorean(3,4))
  
  运行结果
  5
  
  程序说明
  在Lua中函数的定义格式为:
  function 函数名(参数)
  ...
  end
  与Pascal语言不同, end不需要与begin配对, 只需要在函数结束后打个end就可以了.
  本例函数的作用是已知直角三角形直角边, 求斜边长度. 参数a,b分别表示直角边长,
  在函数内定义了local形变量用于存储斜边的平方. 与C语言相同, 定义在函数内的代
  码不会被直接执行, 只有主程序调用时才会被执行.
  local表示定义一个局部变量, 如果不加local刚表示c2为一个全局变量, local的作用域
  是在最里层的end和其配对的关键字之间, 如if ... end, while ... end等。全局变量的
  作用域是整个程序。
  
  2. 循环语句
  例e03.lua
  -- Loops
  for i=1,5 do
  print("i is now " .. i)
  end
  
  运行结果
  i is now 1
  i is now 2
  i is now 3
  i is now 4
  i is now 5
  
  程序说明
  这里偶们用到了for语句
  for 变量 = 参数1, 参数2, 参数3 do
  循环体
  end
  变量将以参数3为步长, 由参数1变化到参数2
  例如:
  for i=1,f(x) do print(i) end
  for i=10,1,-1 do print(i) end
  
  这里print("i is now " .. i)中,偶们用到了..,这是用来连接两个字符串的,
  偶在(1)的试试看中提到的,不知道你们答对了没有。
  虽然这里i是一个整型量,Lua在处理的时候会自动转成字符串型,不需偶们费心。
  
  3. 条件分支语句
  例e04.lua
  -- Loops and conditionals
  for i=1,5 do
  print(“i is now “ .. i)
     if i < 2 then
     print(“small”)
     elseif i < 4 then
     print(“medium”)
     else
     print(“big”)
     end
  end
  
  运行结果
  i is now 1
  small
  i is now 2
  medium
  i is now 3
  medium
  i is now 4
  big
  i is now 5
  big
  
  程序说明
  if else用法比较简单, 类似于C语言, 不过此处需要注意的是整个if只需要一个end,
  哪怕用了多个elseif, 也是一个end.
  例如
    if op == "+" then
     r = a + b
    elseif op == "-" then
     r = a - b
    elseif op == "*" then
     r = a*b
    elseif op == "/" then
     r = a/b
    else
     error("invalid operation")
    end
  
  
  4.试试看
  Lua中除了for循环以外, 还支持多种循环, 请用while...do和repeat...until改写本文中的for程序

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网