4.1 算术运算符

Swift中的算术运算符用来组织整型和浮点型数据的算术运算,按照参加运算的操作数的不同可以分为一元运算符二元运算符

4.1.1 一元运算符

算术一元运算一共有3个,分别是-++---a是对a取反运算,a++a--是在表达式运算完后,再给a加一或减一。而++a--a是先给a加一或减一,然后再进行表达式运算。具体说明参见表4-1。

表4-1 一元算术运算

运算符 名称 说明 例子
- 取反符号 取反运算 b=-a
++ 自加一 先取值再加一,或先加一再取值 a++++a
-- 自减一 先取值再减一,或先减一再取值 a----a

下面我们来看一个一元算数运算符的示例:

  1. var a = 12
  2. println(-a)
  3. var b = a++
  4. println(b)
  5. b = ++a
  6. println(b)

输出结果如下:

  1. -12
  2. 12
  3. 14

上述代码第①行是-a,是把a变量取反,结果输出是-12。第②行代码是把a++赋值给b变量,先赋值后++,因此输出结果是12。第③行代码是把++a赋值给b变量,先++后赋值,因此输出结果是14

4.1.2 二元运算符

二元运算符包括:+-*/%,这些运算符对整型和浮点型数据都有效,具体说明参见表4-2。

表4-2 二元算术运算

运算符 名称 说明 例子
+ ab的和,还可用于String类型,进行字符串连接操作 a+b
- ab的差 a-b
* a乘以b的积 a*b
/ a除以b的商 a/b
% 取余 a除以b的余数 a%b

下面我们来看一个二元算数运算符的示例:

  1. //声明一个整型变量
  2. var intResult = 1 + 2
  3. println(intResult)
  4. intResult = intResult - 1
  5. println(intResult)
  6. intResult = intResult 2
  7. println(intResult)
  8. intResult = intResult 2
  9. println(intResult)
  10. intResult = intResult + 8
  11. intResult = intResult % 7
  12. println(intResult)
  13. println("-------")
  14. /声明一个浮点型变量
  15. var doubleResult = 10.0
  16. println(doubleResult)
  17. doubleResult = doubleResult - 1
  18. println(doubleResult)
  19. doubleResult = doubleResult 2
  20. println(doubleResult)
  21. doubleResult = doubleResult / 2
  22. println(doubleResult)
  23. doubleResult = doubleResult + 8
  24. doubleResult = doubleResult % 7
  25. println(doubleResult)

输出结果如下:

  1. 3
  2. 2
  3. 4
  4. 2
  5. 3
  6. -------
  7. 10.0
  8. 9.0
  9. 18.0
  10. 9.0
  11. 3.0

上述例子中分别对整型和浮点型进行了二元运算,具体语句不再赘述。

4.1.3 算术赋值运算符

算术赋值运算符只是一种简写,一般用于变量自身的变化,具体说明参见表4-3。

表4-3 算术赋值符

运算符 名称 例子
+= 加赋值 a+=ba+=b+3
-= 减赋值 a-=b
*= 乘赋值 a*=b
/= 除赋值 a/=b
%= 取余赋值 a%=b

下面我们来看一个算术赋值运算符的示例:

  1. var a = 1
  2. var b = 2
  3. a += b // 相当于 a = a + b
  4. println(a)
  5. a += b + 3 // 相当于 a = a + b + 3
  6. println(a)
  7. a -= b // 相当于 a = a - b
  8. println(a)
  9. a = b // 相当于 a=ab
  10. println(a)
  11. a = b / 相当于 a=a/b
  12. println(a)
  13. a %= b // 相当于 a=a%b
  14. println(a)

输出结果如下:

  1. 3
  2. 8
  3. 6
  4. 12
  5. 6
  6. 0

上述例子中分别对整型进行了+=-=*=/=%=运算,具体语句不再赘述。