lua如何打印行号_如何更好的学习Lua第四篇,控制语句

控制结构

几乎所有的语言都有控制结构,同样,对于Lua的控制结构是非常简单的。Lua提供了用于条件执行的if,循环的while、repeat和for。所有的控制结构都有一个显式的终止符:if、for和while以end作为结尾,repeat以until作为结尾。特别注意,在Lua中是不支持switch结构的。

if 语句:

if语句先测试其条件,然后根据测试结果执行then部分或者else部分,else部分是可选的。如果要编写嵌套的if,可以使用elseif,下面通过代码示例来说明if的使用。

废话不多说,上代码:

4bdfa0c575d20df68b04538fe4d7106d.png

代码验证:

代码注释已经很清晰了,local _true 没有赋值_true为nil,nil为假。这个在前面讲过这里在强调一遍。

while

Lua中的while与其它语言是一样的,示例代码如下:

9ae6ec680ca34fc393961d5f4eb837e0.png

repeat

repeat就好比C++中的do…while结构,循环体至少会执行一次。repeat-until语句重复执行其循环体直到条件为真时结束。

f8cc0d8826a9b655f056eeb9371b8c15.png

在Lua中有两种for语句的形式:数字型for和泛型for

数字型for

数字型for的语法如下:

276b6fe2092ee8f7fa6330a210da88b7.png

在使用for时,需要注意以下两点:

1.for的exp1,exp2和exp3,这三个表达式是在循环开始前一次性求值得;并不会每次循环都进行求值;

2.控制变量var会被自动的声明为for语句的局部变量,并且仅在循环体内可见。

泛型for

泛型for循环通过一个迭代器函数来遍历所有值。在Lua的基础库中提供了ipairs,这是一个用于遍历数组的迭代器函数。从外观上看泛型for比较简单,但其实它是非常强大的。通过不同的迭代器,几乎可以遍历所有的东西。标准库提供了几种迭代器,包括用于迭代文件中每行的io.lines、迭代table元素的pairs、迭代数组元素的ipairs和迭代字符串中单词的string.gmatch等。当然了,我们也可以编写自己的迭代器,在以后的文章中,我会总结如何编写迭代器的。

迭代table元素的pairs

849517f5a0d210459fd27486ba23e5b1.png

代码验证:

通过上面的打印输出已经看的非常明白了,去迭代all这张表,v为下表,temo为元素。代码一目了然。pairs = ipairs 它俩一样

迭代字符串中单词的string.gmatch:

d5e5b7363d634cc0e0bd412d666de875.png

break与return

break和return语句用于跳出当前的块。这里的break、return和C++等语言是一样的。break语句用于结束一个循环,return语句用于从一个函数中返回结果。

781b1db7647579ae6ac316694569f41b.png

break是结束循环,继续往下走。

93e7c135f97a96ef9b260247913d4d6f.png

return是直接返回函数不会在向下执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值