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

news2024/12/24 3:34:04

文章目录

  • 💨更多相关知识👇
    • 一、变量
    • 二、赋值语句
      • 🌟特点2演示
      • 🌟特点3.1演示
      • 🌟特点3.2演示
    • 三、索引
    • 四、lua的循环
      • 🔸while循环
        • 🌟代码演示
      • 🔸for循环
        • 🌟代码演示
      • 🔸repeat...until 循环
        • 🌟代码演示
    • 五、循环控制语句
      • 🔹goto
        • 🌟代码演示
    • 六、无限循环
  • 作者:KJ.JK

💨更多相关知识👇

💖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,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/22203.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

flink1.13(一)

1. 初识Flink 1.1 Flink是什么 Apache Flink 是一个框架和分布式处理引擎, 用于对无界和有界数据流进行状态计算. Flink框架处理流程如下图所示: Flink的应用场景: 1.2 为什么选择Flink 批处理和流处理流数据更真实地反应了我们的生活方式我们的目标 低延迟高吞吐结果的准…

【第九章】vim程序编辑器

文章目录vi与vimvi的使用范例按键说明一般指令模式可用的按钮说明&#xff1a;光标移动、复制贴上、搜寻取代等一般指令模式切换到编辑模式的可用的按钮说明一般指令模式切换到命令行界面的可用按钮说明vim的暂存盘、救援回复与打开时的警告讯息vim的额外功能区块选择&#xff…

AOP编程

什么是面向切面编程AOP? 在软件业&#xff0c;AOP为Aspect Oriented Programming的缩写&#xff0c;意为&#xff1a;面向切面编程&#xff0c;通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续&#xff0c;是软件开发中的一个热点&#xff…

【个人硬件开源分享】基于ESP32的能量机关主控受控模块,伏虎单手摇杆重力感应加摇杆加LCD屏幕分为左手和右手,基于PD5048A的I2C总线扩展级联器

提示&#xff1a;文章看完后&#xff0c;记得点赞&#xff01; 文章目录前言基于ESP32的能量机关主控受控模块伏虎单手摇杆I2C总线级联器MPU6050陀螺仪WS2812灯珠总结前言 这些是我业余时间做的一些电子小作品&#xff0c;包括基于ESP32的能量机关主控受控模块&#xff0c;伏虎…

在这个技术浮躁的时代也要注重架构的本质,多位大佬联袂推荐小团队构建大网站,让你少走弯路,甚至实现速成,成为优秀架构师!

作为一个技术人&#xff0c;架构师是每个人追寻的目标&#xff0c;也是个人价值和成就的一个重要标志。 那架构师是怎样炼成的呢&#xff1f;或者说&#xff0c;怎样才算是一个优秀的架构师呢&#xff1f; 我们需要几年甚至十几年的一线技术工作经验&#xff0c;我们需要正好遇…

isdigit isdecimal isnumeric 区别

一、代码测试 num "1" #unicode num.isdigit() # True num.isdecimal() # True num.isnumeric() # Truenum "1" # 全角 num.isdigit() # True num.isdecimal() # True num.isnumeric() # Truenum b"1" # byte num.isdigit() # True n…

还在手动电源模块测试吗?ATECLOUD智能云测试解放双手

江苏某生产电源的企业联系到纳米软件Namisoft&#xff0c;了解到他们目前依然使用的是全人工模式进行电源模块参数的测试&#xff0c;经常会因为手动记录数据而导致的一些数据出错&#xff0c;测试的效率也是非常低。通过网络了解到Namisoft的ATECLOUD智能云测试平台&#xff0…

Eruke是什么?怎么搭建?

Eruke是什么&#xff1f;怎么搭建?认识Eureka构成单机构建项目搭建注册中心生产者服务发现自我保护什么是自我保护&#xff1f;为什么会有自我保护&#xff1f;关闭结果演示停更认识Eureka 它是一个基于REST的服务&#xff0c;是实现服务发现与注册的组件。 构成 Eureka采用…

【愚公系列】2022年11月 uniapp专题-运行uniapp的多种方式

文章目录前言一、运行到web平台二、运行到安卓模拟器三、运行到微信开发者工具前言 uniapp本身就是一次开发多端部署&#xff0c;uniapp可以发布成各种应用包括以下几种 web版本 一、运行到web平台 点击工具栏的运行 -> 运行到浏览器 -> 选择浏览器&#xff0c;即可体…

BIOMOD2模型、MaxEnt模型物种分布模拟,生物多样性生境模拟,论文写作

目录 ①基于R语言BIOMOD2模型的物种分布模拟实践技术应用 ②基于R语言、MaxEnt模型融合技术的物种分布模拟、参数优化方法、结果分析制图与论文写作 ③基于MAXENT模型的生物多样性生境模拟与保护优先区甄选、自然保护区布局优化评估 ①基于R语言BIOMOD2模型的物种分布模拟实…

分享Markdown编写文档的技巧

Markdown 是一种轻量级标记语言&#xff0c;使用易读易写的纯文本格式编写文档&#xff0c;然后转换成有效的 XHTML&#xff08;或者HTML&#xff09;文档。Markdown有许多好用简单的用法&#xff0c;下面分享Markdown用来编写文档的技巧。 注&#xff1a;下面通过添加\反斜杠来…

Get To The Point: Summarization with Pointer-Generator Networks

论文题目&#xff1a;《Get To The Point: Summarization with Pointer-Generator Networks》 主要内容&#xff1a;seq2seq&#xff0c;文本摘要 《切中要害&#xff1a;指针生成器网络概述》 摘要 神经序列到序列模型为抽象文本摘要提供了一种可行的新方法&#xff08;这意…

TCP链接异常: SYN_RECV

1. 异常数据包分析&#xff1a; 从数据包分析来看应该是网关这边出问题了&#xff0c;应该是网关的服务程序在1217上出问题了&#xff0c; &#xff08;注意左右量变的数据包的一个syn的Seq都是1358143899&#xff09; 从重发2开始网关这边就一直认为它没有收到client回复给它…

Okhttp连接泄漏警告问题分析

背景 某天在查询生产日志时&#xff0c;发现大量的Okhttp连接泄漏警告日志&#xff0c;但生产上没有收到任何异常反馈。出于好奇心&#xff0c;本地最小化复现问题&#xff0c;并最终解决问题。 分析问题 okhttp官网的demo示例 OkHttpClient client new OkHttpClient();Stri…

【K8S】学习笔记(二)

K8S学习笔记三、Kubernetes 核心概念3.1、kubernetes 集群命令行工具 kubectl3.1.1、kubectl 概述3.1.2、kubectl 命令格式3.1.3、kubectl 基础命令3.1.4、kubectl 部署命令3.1.5、kubectl 集群管理命令3.1.6、kubectl 故障和调试命令3.1.7、kubectl 其它命令3.2、Kubernetes 集…

分组后将成员拼成字符串

【问题】 I have a text file like this: key1 value1 A key1 value2 B key1 value3 A key2 value1 A key2 value2 BI am trying to open it as a dictionary and print the list of keys and values separated by commas so it looks like this in the end: key1 value1,va…

PTA题目 谁先倒

划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为&#xff1a;每人口中喊出一个数字&#xff0c;同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和&#xff0c;谁就输了&#xff0c;输家罚一杯酒。两人同赢或两人同输则继续下一轮&…

智云通CRM:越是害怕被客户拒绝,你就越会被拒绝?

你害怕被客户拒绝码&#xff1f;先别急着说“害怕”&#xff0c;先来看看你为什么会被拒绝&#xff1f;因为你认为自己会失败&#xff01; 很多情况霞&#xff0c;我们会被客户拒绝&#xff0c;原因在哪里&#xff1f;原因有很多&#xff0c;最常见的是因为业务员自身的心理障…

SSM整合(四)

SSM整合之redis设置值和获取值三种方式 准备工作(导入一些必要的依赖) <dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-redis</artifactId><version>2.4.1</version> </dependency> <…

ES6 入门教程 19 Generator 函数的语法 19.1 简介

ES6 入门教程 ECMAScript 6 入门 作者&#xff1a;阮一峰 本文仅用于学习记录&#xff0c;不存在任何商业用途&#xff0c;如侵删 文章目录ES6 入门教程19 Generator 函数的语法19.1 简介19.1.1 基本概念19.1.2 yield 表达式19.1.3 与 Iterator 接口的关系19 Generator 函数的语…