1.运算符

1.1算术运算符

 下表列出了 Lua 语言中的常用算术运算符,设定 A 的值为10,B 的值为 20:

操作符

描述

实例

+

加法

A + B 输出结果 30

-

减法

A - B 输出结果 -10

*

乘法

A * B 输出结果 200

/

除法

B / A w输出结果 2

%

取余

B % A 输出结果 0

^

乘幂

A^2 输出结果 100

-

负号

-A 输出结果 -10

1.2关系运算符

 下表列出了 Lua 语言中的常用关系运算符,设定 A 的值为10,B 的值为 20:

操作符

描述

实例

==

等于,检测两个值是否相等,相等返回 true,否则返回 false

(A == B) 为 false。

~=

不等于,检测两个值是否相等,不相等返回 true,否则返回 false

(A ~= B) 为 true。

>

大于,如果左边的值大于右边的值,返回 true,否则返回 false

(A > B) 为 false。

<

小于,如果左边的值大于右边的值,返回 false,否则返回 true

(A < B) 为 true。

>=

大于等于,如果左边的值大于等于右边的值,返回 true,否则返回 false

(A >= B) 返回 false。

<=

小于等于, 如果左边的值小于等于右边的值,返回 true,否则返回 false

(A <= B) 返回 true。

1.3逻辑运算符

 下表列出了 Lua 语言中的常用逻辑运算符,设定 A 的值为 true,B 的值为 false:

操作符

描述

实例

and

逻辑与操作符。 若 A 为 false,则返回 A,否则返回 B。

(A and B) 为 false。

or

逻辑或操作符。 若 A 为 true,则返回 A,否则返回 B。

(A or B) 为 true。

not

逻辑非操作符。与逻辑运算结果相反,如果条件为 true,逻辑非为 false。

not(A and B) 为 true。

1.4其他运算符

 下表列出了 Lua 语言中的连接运算符与计算表或字符串长度的运算符:

操作符

描述

实例

..

连接两个字符串

a..b ,其中 a 为 "Hello " , b 为 "World", 输出结果为 "Hello World"。

#

一元运算符,返回字符串或表的长度。

#"Hello" 返回 5

2.优先级

从高到低的顺序:

^
not    - (unary)
*      /
+      -
..
<      >      <=     >=     ~=     ==
and
or

除了 ^ 和 .. 外所有的二元运算符都是左连接的。

a+i < b/2+1          <-->       (a+i) < ((b/2)+1)
5+x^2*8              <-->       5+((x^2)*8)
a < y and y <= z     <-->       (a < y) and (y <= z)
-x^2                 <-->       -(x^2)
x^y^z                <-->       x^(y^z)

3.实例

3.1: =, +, -, *, /, 赋值,加减剩除;

lua 运算符 重写_bc

lua 没有 c/c++的缩写表达式 += -= *=, ++, --;

3.2: () 改变运算的优先级;

3.3: 字符串对象加法..; “Hello”..”world”

lua 运算符 重写_bc_02

 

lua 运算符 重写_bc_03

 

 

local str = "abc"
str = str .. 7
print(str)  --abc7
str = str .. " asd"
print(str)  --abc7 asd
str = str .. "123"
print(str)  --abc7 asd123

 

3.4: 逻辑运算:and 逻辑与, or 逻辑或

lua 运算符 重写_bc_04

 

 

3.语句(顺序条件循环)

 

 -----条件

 ----if

lua 运算符 重写_bc_05

---if else   if elseif

lua 运算符 重写_lua 运算符 重写_06

--if else
local temp = false;
if temp then
	print("if case")
else
	print("else case")
end
--if elseif
temp = 20;
if temp > 30 then
	print(" temp > 30 ")
elseif temp > 20 then
	print(" temp > 20 ")
elseif temp > 10 then
	print(" temp > 10 ")
end

 -----循环

 --for循环语句

--for 初始值,结束值,每次迭代的步长[可选]

lua 运算符 重写_操作符_07

--for循环语句
--for 初始值,结束值,每次迭代的步长[可选]

local i = 1
--包括了结束值
for i = 1,10 do    -- 默认步长为1
	print(i)   --显示1-10
end

for i = 1,10, 2 do
 	print(i)   --显示1 3 5 7 9
end
for i = 10,1, -2 do
 	print(i)   --显示10 8 6 4 2
end

--求1-100和
local sum = 0
for i = 1,100,1 do
 	sum = sum + i
end
sum = 0
print(sum)
--求1-100之间偶数和
for i = 2,100,2 do
 	sum = sum + i
end
print(sum)

 

---while

 

lua 运算符 重写_bc_08

--while循环
local i = 1
local sum = 0
while i<=100 do
	sum = sum + i
	i = i+1
end

print(sum)