当前位置: 首页 > news >正文

Lua语言变量、函数、运算符、循环

变量

先声明,后使用。

三种类型:全局变量(默认),局部变量(作用范围:从声明开始,到所在的语句块结束),表中的 域

-- test vara = 5;local b = 5function testInit()c = 6;local d = 7endtestInit();b = 9doc = 8endd = "u"print(a,b,c,d)

变量赋值

a = 变量值。

a,b = 1,2

a = 1+2

常用:x , y = y, x a,b,c = 1,2

变量个数 > 值的个数:按照变量的个数 补足 nil。

a,b,c = 1,2,3,4

变量个数<值的个数:多余的值会被忽略。

a,b,c = 0

a = 0,b = nil, c=nil

多变量赋值:还可以用于函数的返回, 参数值互换。 a,b = func();

需要赋值给变量,如果能用局部变量,尽量用局部变量。

索引

对table中元素的访问。

tab["key"] tab.keyprint("-----------索引--------------") tab = {key1 = "中国",key2 = "美国"} print(tab["key1"])print(tab.key2)

循环

用途:做一些有规律的重复操作。

循环体 :一组被重复执行的语句。循环条件 :判断能否继续循环。

while循环

while(循环条件) do

业务代码;

对循环条件的控制; end

a = 1

while(a<5) do

print(a)

a = a+1 end

for循环

数值for循环:for var=exp1,exp2,exp3 do 循环体endvar的值,从exp1一直到exp2,步长是exp3(是可选的,默认是1)print("----for----")for i=1,10,2 doprint(i)endexp1,exp2,exp3 只在循环开始前计算一次。泛型for循环:是通过迭代器进行的。a = {"one","two","three"}for k,v in pairs(a) do print(v)end

repeat until

repeat

循环体

until(条件)

先执行循环体,直到满足条件。如果条件为false,继续执行循环体,如果条件为true,则跳出循 环。

流程控制

if()

print("-----------if-------------") a = 1

if(a == 1) then

print(a.."是1")

end

0 是 true。

函数

函数定义

print()功能:1。完成指定的任务。2。计算并返回值(可以返回多个值)。 函数的范围(local ,缺省)function 函数名称(参数列表)函数体;return 结果 end定义一个函数:实现求两个数的最大值。print("---------------函数定义:求最大值---------------") function testMax(num1,num2)if (num1 > num2) thenresult = num1; elseresult = num2; endreturn result; endprint("15,20中的最大值是:"..testMax(15,20))函数可以作为参数进行传递。例子:自定义打印函数。print("---------------函数定义:自定义打印函数---------------")myPrint = function(p)print("重新的打印函数:",p) end;myPrint("test");function add(num1,num2,myPrintParam)result = num1 + num2;myPrintParam(result); endadd(2,3,myPrint)

多值返回

​
print("---------------多值返回---------------")startIndex,endIndex = string.find("www.mashibing.com","ma") print(startIndex , endIndex)例子:找出一个数组中,最大的值,以及它的索引。print("---------------找出数组中,最大的值,以及索引---------------") function testMax(a)local iIndex = 1;local iValue = a[iIndex];for i,v in pairs(a) doif v > iValue theniIndex = i;iValue = v;endendreturn '最大值的索引:'..iIndex  ,  '最大值是:'..iValue endprint(testMax({1,4,8,2,7,10,6,3}))​

可变参数

运算符

算术运算符

+ 

- 

* 

/ 

% 取余 ^ 乘幂 - 负号

关系运算符

== 等于。

~=不等于

> 大于

< 小于

>= 大于等于 <= 小于等于

逻辑运算符

and or

not

其他运算符

.. 连接符

# 计算字符串或者 表 的长度。

http://www.dtcms.com/a/324802.html

相关文章:

  • 小学数学计算技巧全攻略
  • 攻击者瞄准加密技术的基础:智能合约
  • [网安工具] Web 漏洞扫描工具 —— GoBy · 使用手册
  • Video Lecture 8 Page Fault
  • 7、西门子PLC基础术语:数据单位、存储区域、寻址方式、字节序
  • LightGBM 与 GBDT 在机器学习中的性能与特点比较
  • element-ui el-progress在有小数的情况下,会换行显示。解决不换行的问题。
  • redis集群-本地环境
  • 【前端基础】14、CSS设置背景(background相关的)
  • 正则表达式常用语法参考
  • STM32H7 以太网配置引申的内存问题
  • A2A协议深度理解与实践
  • 解决 .NET Core 6.0 + PostgreSQL 网站首次连接缓慢问题
  • 安全生产基础知识(一)
  • 去除Edge微软浏览器与Chrome谷歌浏览器顶部出现“此版本的Windows不再支持升级Windows 10”的烦人提示
  • 深度剖析 Linux 信号:从基础概念到高级应用,全面解析其在进程管理与系统交互中的核心作用与底层运行机制
  • 【牛客刷题】REAL799 翻转01 (饿了么面试题)
  • Vue 事件冒泡处理指南:从入门到精通
  • 亚麻云之监控管家——CloudWatch基础监控
  • socket编程中系统调用send()详细讲解
  • 《算法导论》第 16 章 - 贪心算法
  • ATF(TF-A)安全通告 TFV-12(CVE-2024-5660)
  • 2025年Java 面试题及答案整理(金九银十最新版,持续更新)
  • vuhub Beelzebub靶场攻略
  • 从零学习three.js官方文档(二)——图元
  • 数据结构2线性表——顺序表
  • Python高阶
  • 企业架构之导论(1)
  • 2025华数杯比赛还未完全结束!数模论文可以发表期刊会议
  • C# 异步编程(并行循环)