前言

  由于之前有c/c++、javascript基础,所以学Lua的时候喜欢拿来和前面的语言比较,这里主要和C比较

1.if...else

  Lua的if语句格式:

if  条件 then
 条件成立,运行的程序块
else
 条件失败,运行的程序块
end

  Lua没有大括号来表明程序块,所以,后面要加上end来表明if语句已经结束,同样,嵌套if时,通过elseif和else  if来区分

2.while

  格式:

while  表达式 do
--body
end

注意:Lua并没有像其他语言那样提供类似continue这样的控制语句来立即进入下一个循环。

3.repeat

  repeat类似C语言的do--while,但是repeat是先执行循环体,直到条件为真,而C语言,是知道条件为假

x  =
repeat
print(x)
until false    //死循环

4.for

  for语句有两种形式:数字for和范性for

  1)数字for

for var = begin, finish, step do
--body
end

var从begin变化到finish,每次变化都以step作为步长递增var,并执行一次执行体。step是可选的,若不指定,默认为1

for i =1,5 do
print(i)
end
-- output:
1
2
3
4
5

  如果不想给循环设置上限的话,可以使用常量math.huge

for i=	1,math.huge	do
  if(0.3*i^3 - 20*i^2 - 500 >=0) then
print(i)
break
  end
end

  2)范型for

  泛型for通过一个迭代器(iterator)函数来遍历所有值

  Lua的基础库提供了ipairs,这是一个用于遍历数组的迭代器函数。在每次循环中,i会被赋予一个索引值,同时v被赋予一个对应于该索引的数组元素值

  

--	打印数组a的所有值
local a = {"a", "b", "c", "d"}
for i, v in ipairs(a) do
 print("index:", i, " value:", v)
end
-- output:
index: 1 value: a
index: 2 value: b
index: 3 value: c
index: 4 value: d

5.break,return

  break用来终止while,repeat和for三种循环的执行,并跳出当前的循环。

  return主要用于从函数中返回结果。

  

  

Lua学习---Lua的控制结构的更多相关文章

  1. Lua学习----Lua的表达式

    前言 Lua的运算符和其他语言基本类似.但也有一点点区别 1.算术运算符 Lua的算术运算符加入了指数运算符^ print(2 ^ 10) -->打印 1024. 求2的10次方 2.关系运算符 ...

  2. Lua学习----Lua基础数据类型

    前言 Lua有6中数据类型,分别是nil(空).boolean(布尔).number(数字).string(字符).table(表).function(函数) 在Lua中可以使用type函数来返回一个 ...

  3. Lua学习笔记(二):基本语法

    Lua学习指南:http://www.lua.org/manual/ 首先我们要明确的一点是:在Lua中,除了关键字外一切都是变量. Lua关键字 可以查看这个地址:http://www.lua.or ...

  4. Lua 学习笔记(一)

    Lua学习笔记 1.lua的优势 a.可扩张性     b.简单     c.高效率     d.和平台无关 2.注释 a.单行注释 --        b.多行注释 --[[  --]] 3.类型和 ...

  5. Lua学习笔记一

    学习了有一周多了.之前一直不想献丑,但还是记录下这个过程. 第1章  开发软件搭建 1. ubuntu 下lua安装 sudo apt-get install lua5.1 2.win下的环境搭建. ...

  6. lua 学习 (一 )Mac搭建lua环境和ide

    今天开始学习lua  首先是搭建环境 和 我的hello world 首先 交代一下我用的是 Mac 系统 所以在Mac上安装lua 环境很方便的 lua  Mointain Lion - Lua 5 ...

  7. Lua学习笔记(一)-----C#和lua的交互

    一直以来对Lua热更新技术很感兴趣,在上周开始了对Lua的学习,主要学的是uLua. 直接上干货 准备工作: LuaInterface包括两个核心库一个是LuaInterface.dll,一个是Lua ...

  8. Lua 学习笔记(一)环境搭建

    Lua是一个小巧的脚本语言.Lua由标准C编写而成,代码简洁,几乎在所有的操作系统和平台上都可以编译,运行. 主要讲一下mac和win下的环境搭建. 工具:      1.Sublime Text 2 ...

  9. lua学习笔记

    工作需要,上周对lua赶进度似地学习了一遍,主要参考<lua中文教程>一书,中间参考一些<lua游戏开发实践>,首先说说这两本书,后者不适合初学,里面是对一个游戏脚本系统进行粗 ...

随机推荐

  1. 闲扯游戏编程之html5篇--山寨版《flappy bird》源码

    新年新气象,最近事情不多,继续闲暇学习记点随笔,欢迎拍砖.之前的〈简单游戏学编程语言python篇〉写的比较幼稚和粗糙,且告一段落.开启新的一篇关于javascript+html5的从零开始的学习.仍 ...

  2. Tips for VNCServer config

    Tips for VNCServer After the ClearCase server reboot by Jingwei, my vncserver background process is ...

  3. MyEclipse中直接打开class文件的方法

    安装步骤: 1>下载jad.exe(这是一个class文件的反编译工具,但是是命令行运行编译,使用起来不是很方便:), 将其拷贝到%JAVA_HOME%/bin目录下(其他目录也可). 2> ...

  4. Oracle设置自动递增的方法

    1)创建序列: create sequence SEQ_TEST --字段名 minvalue 1        --最小值 maxvalue XXXXX      --设置最大值 start wit ...

  5. js 正则表达式 转至(七郎's Blog)

    //匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线 var re =new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,19}$"); if( ...

  6. selected 刷新页面后selected选中的值保持不表(thinkphp 从控制器assign 传值到js)

    昨晚解决select 刷新页面以后选择的值保持不变,要想让seleted不变,有两种思路, 1,在提交表单的时候,将所选择的option的属性设为checked . 2.将option的value或者 ...

  7. 操作系统学习笔记(五)--CPU调度

    由于第四章线程的介绍没有上传视频,故之后看书来补. 最近开始学习操作系统原理这门课程,特将学习笔记整理成技术博客的形式发表,希望能给大家的操作系统学习带来帮助.同时盼望大家能对文章评论,大家一起多多交 ...

  8. iOS各版本图标尺寸汇总

    About Information Property List Files UILaunchImageFile UILaunchImageFile (String - iOS) specifies t ...

  9. stm32f10x .icf文件 可以看懂

    /*###ICF### Section handled by ICF editor, don't touch! ****//*-Editor annotation file-*//* IcfEdito ...

  10. supervisord 小记

    此篇仅用作supervisord的用法,不涉及理论说明和基础介绍 supervisor(一)基础篇 使用supervisord来管理process 进程的守护神 - Supervisor superv ...