Swift -- 3.运算符与表达式

+ 加法运算符

- 减法运算符

* 乘法运算符

/ 除法运算符,如果两个除数都是整数类型,得到的值也是整数类型,并且分母不能为零

  如果两个除数其中有一个是浮点类型,那么结果就是浮点类型,分母可以为零,值为正/负无穷大

 % 求余运算符 两个操作数都可以是浮点类型,如果整数类型,那么第二个操作数不能为零,如果其中一个为浮点类型,第二个操作数可以为浮点类型,得到的结果为非数 nan ;0 对任何数求余都得0

     求余运算的结果正负完全取决于被除数,只要被除数是正数,结果一定是正数

++ 自加运算符 如果在数值左边,先给数值加1再进行其他操作,如果在数值右边,先进行其他操作再给数值加1

var int2 = 5

var int3 = int2++ + 5 //值为10

int2 = 5

var int4 = ++int2 + 5//值为11

-- 自减运算符

自加和自减运算符都只能用于操作变量,常量和操作数值不可以这样用

 

在swift文件前端写 import Foundation 就可以使用ANSIC标准库中的<math.h>头文件中定义的数学函数来完成复杂的运算

//求a的5次方,并将结果赋值给b

var a = 3.2

var b = pow(a, 5)

 

//求a的平方根,并将结果赋值给c

var c = sqrt(a)

 

//计算随机数。返回一个0~10之间的伪随机数

var d = arc4random() % 10

 

//求1.57的sin函数值:1.57被当成弧度数

var e = sin(1.57)

 

位运算符:太难了,没有看

 

扩展后的赋值运算符

x += y ~~~~ x = x + y

x -= y ~~~~ x = x - y

x *= y ~~~~ x = x * y

x /= y ~~~~ x = x / y

x %= y ~~~~ x = x % y

 

范围运算符

可以很方便的构造一种数据结构

1 闭范围运算符,包括两边的值

var range1 = 2...6

for num in range1

{

    print(num)

}

//23456

 

2 半开范围运算符

let books = ["swift","oc","c","c++"]

for index in 0..<books.count

{

    print(index)

}

//0123

 

=== 恒等于,用来判断两个引用类型的变量是否指向同一个对象,类似的运算符有 !== 不恒等于

var d1 = NSMutableArray()

var d2 = NSMutableArray()

print(d1 === d2)

//false

 

逻辑运算符

&& 与

& 不短路与

&&在判断一个值为false之后,不会再去看第二个值,而&会去计算第二个值

|| 或

| 不短路或

!非 只需要一个操作数,如果操作数为true,则返回false,如果操作数为false,则返回true

^ 异或 当两个操作数不同时返回true,相同返回false

 

三目运算符 ?:

var a = 5

var b = 6

var str = a>b ? "yes" : "no"

//str 值为no

 

nil合并运算符

a ??b

如果a值为nil,程序返回b,如果a不为nil,程序返回a

注意,只有可选类型可以被赋值为nil,所以a一般为可选类型

var stra = "sun"

var name1 : String? = "tang"

print(name1 ?? stra) //tang

 

var name2 : String?

print(name2 ?? stra) //sun

 

posted @ 2016-05-03 14:32  电蚊拍  阅读(273)  评论(0编辑  收藏  举报