自学内容网 自学内容网

lua 运算符和控制语句

运算符

Lua 支持以下运算符:

  • 算术运算符:+(加),-(减),*(乘),/(除),^(幂),%(取模)。
  • 关系运算符:==(等于),~=(不等于),>(大于),>=(大于等于),<(小于),<=(小于等于)。
  • 逻辑运算符:and(与),or(或),not(非)。
  • 连接运算符:..(连接)。
  • 赋值运算符:=(赋值)。
print(1 + 2) -- 3
print(10 - 5) -- 5
print(2 * 3) -- 6
print(10 / 3) -- 3.3333333333333335
print(2 ^ 3) -- 8.0
print(10 % 3) -- 1
print(1 == 1) -- true
print(1 ~= 1) -- false
print(1 < 2) -- true
print(1 <= 2) -- true
print(1 > 2) -- false
print(1 >= 2) -- false
print(true and false) -- false
print(true or false) -- true
print(not true) -- false
print("Hello" .. "world!") -- Helloworld!
a = 10
a = a + 2 -- 12
print(a) -- 12
a, b = 1, 2; c = 1; d = 2
y, x = x, y -- swap(x,y)
x = 1, 2, 3
x, y = 1

print(a, b, c, d, x, y) -- 1 2 1 2 1 nil

a and b 当 a 为真时返回 b, 当 a 为假时,返回 a 条件表达式 a?b:a

a or b 当 a 为真时返回 a, 当 a 为假时,返回 b 条件表达式 a?a:b

not a 当 a 为真时返回假,当 a 为假时,返回真 条件表达式 a?false:true

local c = nil
local d = 0
local e = 100
print(c and d) -->打印 nil
print(c and e) -->打印 nil
print(d and e) -->打印 100
print(c or d) -->打印 0
print(c or e) -->打印 100
print(not c) -->打印 true
print(not d) -->打印 false

(a and {b} or {c})[1] --此时 a 为真,表达式为{b},为真,取其第一个元素的内容

变量

Lua 中的变量分为全局变量和局部变量。

全局变量:全局变量在整个程序中都可以访问,可以被赋值、修改。
所有的变量默是全局,除非显式地声明为 local 局部。全局变量,
可以不经定义直使用,默认为 nil

局部变量:局部变量只在函数内部访问,函数执行完毕后,局部变量会被销毁。
当类型被指定为 local 局部的一个变量,它的范围是有限的在自己的
范围内使用。需要加 local 修饰 ,默认值为 nil。

-- 全局变量
a = 10

-- 局部变量
function test()
  local b = 20
  print(a + b)
end

test() -- 30
print(a) -- 10

do end 块:do end 块可以用来创建临时变量,其中的变量只在 do end 块中有效。

do
  local temp = 10
  print(temp) -- 10
end

控制结构

Lua 支持以下控制结构:

  • if 语句:条件判断语句。
  • while 语句:循环语句。
  • repeat 语句:重复语句。
  • for 语句:循环语句。
  • function 语句:定义函数。
  • return 语句:返回语句。

if 语句

if 语句用于条件判断,根据条件是否成立,执行对应的代码块。

if a > 0 then
  print("a is positive")
elseif a < 0 then
  print("a is negative")
else
  print("a is zero")
end

while 语句

while 语句用于循环,当条件成立时,执行循环体代码。

i = 1
while i <= 10 do
  print(i)
  i = i + 1
end

repeat 语句

while 当假是退出, repeat 直到为真时才退出

repeat 语句用于重复执行代码块,直到条件不成立时结束。

Lua 中的 repeat 也
可以在使用 break 退出

i = 1
repeat
  print(i)
  i = i + 1
until i > 10
until false --死循环

for 语句

for 语句用于循环,可以指定起始值、终止值、步长,并在每次循环中执行代码块。
循环的控制变
量默认是局部的

for var = exp1, exp2 do
<执行体>
end

for var = exp1, exp2, exp3 do
<执行体>
end

exp1 开始值
exp2 终止值
exp3 步长

for i = 1, 10 do
  print(i)
end

for i = 1, 10, 2 do
  print(i)
end

generic for 语句

generic for 语句用于遍历数组、表、字符串等。
ipairs 是 Lua 提供的一个迭代器函数,用来迭代数组

a = {1, 2, 3, 4, 5}

for i, v in ipairs(a) do
  print(i, v)
end

print("--------")

for k, v in pairs(a) do
  print(k, v)
end


原文地址:https://blog.csdn.net/gopher9511/article/details/143579653

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!