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

1. 函数的使用

成都创新互联公司专注于企业营销型网站、网站重做改版、三水网站定制设计、自适应品牌网站建设、H5场景定制商城系统网站开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为三水等各大城市提供网站开发制作服务。

以下程序演示了如何在Lua中使用函数, 及局部变量

例e02.lua

 
 
 
  1. -- functions 
  2. function pythagorean(a, b) 
  3. local c2 = a^2 + b^2 
  4. return sqrt(c2) 
  5. end 
  6. 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

 
 
 
  1. -- Loops 
  2. for i=1,5 do 
  3. print("i is now " .. i) 
  4. 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

 
 
 
  1. -- Loops and conditionals 
  2.  for i=1,5 do 
  3.  print(“i is now “ .. i) 
  4.  if i < 2 then 
  5.  print(“small”) 
  6.  elseif i < 4 then 
  7.  print(“medium”) 
  8.  else 
  9.  print(“big”) 
  10.  end 
  11.  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.

例如

 
 
 
  1. if op == "+" then 
  2. r = a + b 
  3. elseif op == "-" then 
  4. r = a - b 
  5. elseif op == "*" then 
  6. r = a*b 
  7. elseif op == "/" then 
  8. r = a/b 
  9. else 
  10. error("invalid operation") 
  11. end 

4.试试看

Lua中除了for循环以外, 还支持多种循环, 请用while...do和repeat...until改写本文中的for程序

原文链接:http://tech.it168.com/j/2008-02-14/200802141336501.shtml

当前文章:通过例子学习Lua(2)—Lua流程控制
网站URL:http://www.csdahua.cn/qtweb/news16/115566.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网