2.6 运算符

运算符是进行科学计算的标识符。常量、变量和运算符可以组成表达式,表达式是组成程序的基本部分。

2.6.1 算术运算符

Lua中的算术运算符用来组织整型和浮点型数据的算术运算,Lua中的算术运算包括:+、-、*、/、%和^,这些运算符对整型和浮点型数据都有效。二元运算符说明如表2-1所示。

表2-1 二元算术运算

下面看一个算数运算符示例:

    --声明一个整型变量
    local intResult = 1 + 2
    print(intResult)

    intResult = intResult - 1
    print(intResult)

    intResult = intResult * 2
    print(intResult)

    intResult = intResult/2
    print(intResult)

    intResult = intResult + 8
    intResult = intResult % 7
    print(intResult)

    print("-------")
    --声明一个浮点型变量
    local doubleResult = 10.6
    print(doubleResult)

    doubleResult = doubleResult - 1
    print(doubleResult)

    doubleResult = doubleResult * 2
    print(doubleResult)

    doubleResult = doubleResult/2
    print(doubleResult)

    doubleResult = doubleResult + 8
    doubleResult = doubleResult % 7
    print(doubleResult)

输出结果如下:

      3
      2
      4
      2
      3
      -------
      10.6
      9.6
      19.2
      9.6
      3.6

上述例子分别对整型和浮点型进行算术运算,具体语句不再解释。

2.6.2 关系运算符

关系运算是比较两个表达式大小关系的运算,它的结果是真(true)或假(false),即布尔型数据。如果表达式成立则结果为true,否则为false。关系运算符有8种:>、<、>=、<=、==和~=。关系运算符说明如表2-2所示。

表2-2 关系运算符

下面看一个关系运算符示例:

      local value1 = 1
      local value2 = 2

      if value1 == value2 then
          print("value1 == value2")
      end

      if value1 ~= value2 then
          print("value1 ~= value2")
      end

      if value1 > value2 then
          print("value1 > value2")
      end

      if value1 < value2 then
          print("value1 < value2")
      end

      if value1 < = value2 then
          print("value1 < = value2")
    end

输出结果如下:

    value1 ~= value2
    value1 < value2
    value1 < = value2
    a == b

2.6.3 逻辑运算符

逻辑运算符是对布尔型变量进行运算,其结果也是布尔型。关系运算符说明如表2-3所示。

表2-3 关系运算符

我们看看下面的例子:

    local i = 0
    local a = 10
    local b = 9

    if (a > b)or(i == 1)then
      print("或运算为 真")
    else
      print("或运算为 假")
    end
    print("i ="..i)

    i = 0
    if (a < b)and(i == 1)then
      print("与运算为 真")
    else
      print("与运算为 假")
    end
    print("i ="..i)

上述代码运行后的输出结果如下:

    或运算为  真
    i = 0
    与运算为  假
    i = 0

2.6.4 运算优先级

运算优先级决定表达式的运算顺序,如果运算顺序不同,同样的表达式就有不同的结果。运算优先级说明如表2-4所示。

表2-4 运算优先级

表2-4所示的运算符优先顺序是从上到下,由高到低。