【Lua基础 第3章】变量、赋值语句、索引、lua中的循环、循环控制语句

简介: lua 中的变量、赋值语句、索引、lua中的循环、循环控制语句

💨更多相关知识👇

💖Spring中的创建对象的三种方式、第三方资源配置管理详细描述及使用(XML版完结篇)

💖Spring中的bean的配置、作用范围、生命周期详细描述及使用(XML版上篇)

💖Spring中的依赖注入、setter与构造器注入、自动装配与集合注入详细描述及使用(XML版中篇)


🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈
 
🍂个人博客首页: KJ.JK
 
💖系列专栏:JavaEE进阶教程系列

一、变量

          "Lua 变量有三种类型: 全局变量、局部变量、表中的域"
          
          "Lua 中的变量全是全局变量,哪怕是语句块或是函数里,除非用 local 显式声明为局部变量"
          
           --局部变量的作用域为: 从声明位置开始到所在语句块结束
           
           --变量的默认值均为 nil

请添加图片描述


二、赋值语句

"特点:"
       "1.Lua 可以对多个变量同时赋值,变量列表和值列表的各个元素用逗号分开,赋值语句右边的值会依次赋给左边的变量"
       
  如:
      a,b =10 , 5
      print(a) -- 10
      print(b) -- 5
--------------------------------------------------------------------------------------------------------------------------------

       "2.遇到赋值语句Lua会先计算右边所有的值然后再执行赋值操作,所以可以这样进行交换变量的值"
       
    如:
        x=20;
        y=10;
        print("原来x的值:"..x)
        print("原来y的值:"..y)
        print("--------------------------------")

        x,y=y,x
        print("后来x的值:"..x)
        print("后来y的值:"..y)
--------------------------------------------------------------------------------------------------------------------------------

         "3.当变量个数和值的个数不一致时"
         
             (1)变量个数 > 值的个数 按变量个数补足nil
                
                如:
                   a,b,c=0,1;
                   print(a,b,c) -- a=0,b=1 c=nil
                   
              (2)变量个数 < 值的个数 多余的值会被忽略
              
                如:
                
                    a,b,c=0,1;
                    a,b = a+1,b+1,b+3
                    print(a,b) -- a=1, b=2

🌟特点2演示

请添加图片描述


🌟特点3.1演示

请添加图片描述


🌟特点3.2演示

请添加图片描述


三、索引

     如有一个表table
     
             table[i]
             table.i -- 当索引为字符串类型时的一种简化写法
             gettable_event(table,i) -- 采用索引访问本质上是一个类似这样的函数调用
             
--------------------------------------------------------------------------------------------------------------------------------

      例子:
              table={}
              table["key"]="abcd"
              print(table["key"]) -- abcd
              print(table.key) -- abcd

请添加图片描述


四、lua的循环

循环类型 描述
while循环 在条件为 true 时,让程序重复地执行某些语句。执行语句前会先检查条件是否为true
for循环 重复执行指定语句,重复次数可在 for 语句中控制
repeat..until 重复执行循环,直到 指定的条件为真时为止
循环嵌套 可以在循环内嵌套一个或多个循环语句(while do ... end;for ... do ... end;repeat... until;)

🔸while循环

"语法":
            while(condition)
             do
               statements
             end

请添加图片描述


🌟代码演示

   a=10
   while(a>2)
    do
      print("a的值为:",a)
      a=a-1
    end

请添加图片描述


🔸for循环

"语法:"
-- exp1: 初始值 , exp2: 结束值 exp3: 步长,以指定多少来增加,可以不写,不写默认为1,如果是负值,就是倒序
      for var=exp1,exp2,exp3 do
        <执行体>
      end

🌟代码演示

请添加图片描述


🔸repeat...until 循环

"语法:"
         repeat
           statements
         until( condition )
-- 相当于do while 先执行一次再进行判断

请添加图片描述


🌟代码演示

请添加图片描述


五、循环控制语句

控制语句 描述
break 退出当前循环或语句,并开始脚本执行紧接着的语句
goto 将程序的控制点转移到一个标签处

🔹goto

          "goto 语句 将程序的控制点转移到一个标签处"
          
             Label 的格式为:
             
                      :: Label ::

🌟代码演示

local a=1
::label::print("--- goto label ---")
a=a+1
if(a<3)
   then
      goto label
   end

请添加图片描述


六、无限循环

   while( true )
          do
          print("循环将永远执行下去")
      end

作者:KJ.JK

文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习

目录
相关文章
|
存储 Java C语言
lua变量、数据类型、if判断条件和数据结构table以及【lua 函数】
lua变量、数据类型、if判断条件和数据结构table以及【lua 函数】
225 0
|
C++ 索引 Python
Lua中self 、自索引及其面向对象应用代码示例
Lua中self 、自索引及其面向对象应用代码示例
|
存储 算法 JavaScript
[✔️]lua for循环
[✔️]lua for循环
152 0
|
C# 索引
lua语言——变量
lua语言——变量
230 0
|
XML 自然语言处理 Java
【Lua基础 第5章 】unpack()和pack()、Lua 中的文件 I/O、简单模式下io的部分方法、完全模式下file的部分方法、日期和时间、闭包使用
unpack()和pack()、Lua 中的文件 I/O、简单模式下io的部分方法、完全模式下file的部分方法、日期和时间、闭包使用
1228 0
【Lua基础 第5章 】unpack()和pack()、Lua 中的文件 I/O、简单模式下io的部分方法、完全模式下file的部分方法、日期和时间、闭包使用
|
XML Java 数据格式
【Lua基础 第4章】Lua的流程控制、#的作用、table的创建方式、table表常用方法、函数、多返回值、可变长参数
Lua的流程控制、#的作用、table的创建方式、table表常用方法、函数、多返回值、可变长参数
238 0
【Lua基础 第4章】Lua的流程控制、#的作用、table的创建方式、table表常用方法、函数、多返回值、可变长参数
lua语言——循环
lua语言——循环
187 0
|
7月前
|
缓存 NoSQL 搜索推荐
【📕分布式锁通关指南 03】通过Lua脚本保证redis操作的原子性
本文介绍了如何通过Lua脚本在Redis中实现分布式锁的原子性操作,避免并发问题。首先讲解了Lua脚本的基本概念及其在Redis中的使用方法,包括通过`eval`指令执行Lua脚本和通过`script load`指令缓存脚本。接着详细展示了如何用Lua脚本实现加锁、解锁及可重入锁的功能,确保同一线程可以多次获取锁而不发生死锁。最后,通过代码示例演示了如何在实际业务中调用这些Lua脚本,确保锁操作的原子性和安全性。
393 6
【📕分布式锁通关指南 03】通过Lua脚本保证redis操作的原子性
|
7月前
|
NoSQL Redis 数据库
Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
通过本文的介绍,我们详细讲解了 Lua 脚本在 Redis 中的作用、`eval` 命令的使用方法以及 `redis.call` 和 `redis.pcall` 的区别和用法。通过合理使用 Lua 脚本,可以实现复杂的业务逻辑,确保操作的原子性,并减少网络开销,从而提高系统的性能和可靠性。
257 13