Lua中的控制结构(流程控制)简明总结

在Lua中,所有的控制结构块都是以end作为结束标记。
控制结构的表达式结果可以是任何值,Lua下只有false和nil为假,其他值都为真。

1. if

代码如下:

if 条件 then
    ...
end;  
 
if 条件 then
    ...
else
    ...
end;
 
if 条件 then
    ...
elseif 条件 then
    ...
else
    ...
end;

then关键字用来标记有条件的代码块的开始。

2. repeat

代码如下:

repeat
    ...
until 条件

repeat关键字用来标记代码块的开始,until用来标记代码块的结束。控制结构的条件表达式位于until关键字之后。

3. while

代码如下:

while 条件
do
    ...
end

repeat和while控制结构相似,都可以循环执行一段代码直到满足某个条件。
repeat控制结构在最后判断条件,代码块至少会被执行一次的。
while控制结构首先判断条件,如果为真,那么代码块会被执行,也可能永远不被执行。
while控制结构使用do关键字,用来标记程序块的开始。

4. for

代码如下:

for 变量=初值, 终点值, 步长
do
    ...
end
 
for 变量1, 变量2, ... 变量n in 表或枚举函数
do
    ...
end

循环次数只在第一次执行时候确定。初值, 终点值, 步长只会被计算一次,并且是在循环执行前。
循环结构中的变量是局部变量,一旦循环体结束后就被清除。

5. break

break语句用来退出当前循环。在循环体外部不可以使用。

6. return

return用来从函数返回结果。一个函数自然结束后会有一个默认的return。

(0)

相关推荐

  • Lua中的控制结构(流程控制)简明总结

    在Lua中,所有的控制结构块都是以end作为结束标记. 控制结构的表达式结果可以是任何值,Lua下只有false和nil为假,其他值都为真. 1. if 复制代码 代码如下: if 条件 then     ... end;     if 条件 then     ... else     ... end;   if 条件 then     ... elseif 条件 then     ... else     ... end; then关键字用来标记有条件的代码块的开始. 2. repeat 复制

  • 原生js中运算符及流程控制示例详解

    运算符 算数:+ 加.- 减.* 乘./ 除.% 求模 赋值:=.+=.-=.*=./=.%= 关系:>.<. >=. <=. ==. ===. !=. !== 逻辑:||或.&&与.!否 实例1.求模 window.onload = function(){ alert(0%2) //0 alert(1%2) //1 alert(2%2) //0 } 实例2.隔行变色 <body> <ol> <li>取模:就是求余数</li

  • Lua基础教程之赋值语句、表达式、流程控制、函数学习笔记

    赋值语句 注释,单行用(--)来表示:多行用(--[[ ... ]])来标示: 定义,lua中没有定义(申明数据类型),它是通过赋值来确定其数据类型的. 赋值,是改变一个变量的值和改变表域的最基本的方法. a = "hello" .. "world" Lua可以对多个变量同时赋值,变量列表和值列表的各个元素用逗号分开,赋值语句右边的值会依次赋给左边的变量.a, b = 10, 2*x <--> a=10; b=2*x 遇到赋值语句Lua会先计算右边所有的

  • Lua中基本的数据类型、表达式与流程控制语句讲解

    1. Lua类型 1.1 基本类型 Lua是一种动态类型语言,没有类型定义的语法.Lua一共有8种基础类型:nil(空).boolean(布尔).number(数字).string(字符串).userdata(自定义类型).function(函数).thread(线程).table(表). 函数type可根据一个值返回其类型名称(字符串),如print(type(print)),输出"function":print(type(type(X))) ,输出"string"

  • Erlang中的函数与流程控制介绍

    一:函数 1:在Erlang中,[名字相同但参数数目不同]的两个函数是完全不同的函数. 2:其他模块内的函数用完全限定名称 被调用: 复制代码 代码如下: -module(sort1). -export([reverse_sort/1, sort/1]). reverse_sort(L) ->         lists1:reverse(sort(L)). sort(L) ->         lists:sort(L). 3:子句间以分号[;]分隔,在最后的结尾处以[.]结尾. 4:每个函

  • 深入讲解Java中的流程控制与运算符

    Java流程控制 Java流程控制的语法与 C/C++ 类似,也有 if...else.while.do...while.for.switch...case等,这里不再讲述具体语法,仅举例说明. 输出九九乘法表(右上三角): public class Demo { public static void main(String[] args){ int i, j; for(i=1; i<=9; i++){ for(j=1; j<=9; j++){ if(j<i){ //打印八个空格,去掉空

  • 解析C#中断言与异常的应用方式及异常处理的流程控制

    断言与异常(Assertion Vs Exception) 在日常编程实践中,断言与异常的界限不是很明显,这也使得它们常常没有被正确的使用.我也在不断的与这个模糊的怪兽搏斗,仅写此文和大家分享一下我的个人看法.我想我们还可以从很多角度来区别断言和异常的使用场景,欢迎大家的意见和建议. 异常的使用场景:用于捕获外部的可能错误 断言的使用场景:用于捕获内部的不可能错误 我们可以先仔细分析一下我们在.net中已经存在的异常. System.IO.FileLoadException SqlExcepti

  • Python中的流程控制详解

    流程控制无非就是if else之类的控制语句,今天我们来看一下Python中的流程控制会有什么不太一样的地方. while语句 python中的while语句和其他语言没有什么不一样,我使用while语句来编写一个斐波拉赫数列: In [56]: while x < 10 : ...: print(x) ...: x, y = y, x+y ...: 0 1 1 2 3 5 8 if 语句 python中的 if 可以和 elif 或者 else 配合使用: >>> x = int

  • 详解Java中的流程控制

    1.分支结构的概念 当需要进行条件判断并做出选择时,使用分支结构 2.if分支结构 格式: if(条件表达式){ 语句块; } package com.lagou.Day04; import java.util.Scanner; /** * 编程使用if分支结构模拟网吧上网的过程 */ public class Demo01 { public static void main(String[] args) { //1.提示用户输入年龄信息并使用变量记录 System.out.println("请

  • Python中的变量、运算符与流程控制

    目录 一.执行Python程序的两种方式 1.交互式 2.命令行式 二.变量 1.变量的组成 2.变量名的定义规范 3.定义变量的两种方式 4.常量 三.Python变量内存管理 1.引用计数 2.垃圾回收机制 3.小整数池 4.内存地址与数据类型 5.实例: 四.花式赋值 1. 链式赋值 2. 交叉赋值 3.多个变量赋值 五.与用户交互 六.格式化输出 1. 占位符(旧式字符串格式化,逐步淘汰) 2. format格式化 1.格式:<模板字符串>.format(<逗号分隔的参数>

随机推荐