在编程中,表达式是最小的程序单位。表达式由两部分组成:运算符和操作数。用于表示各种不同运算的符号运算符,指出了操作符参与的运算规则。
赋值运算符
赋值运算a=b中,表示用等号右边的b的值初始化或更新a的值。
赋值运算符不返回值,以防止把想要使用相等运算符(==)的地方写成赋值运算符导致的错误。
单目负运算符
单目负运算符(-)用于切换数据类型的负正。
单目运算符(-)写在操作数的前面,中间没有空格。
算术运算符
1.基本四则算术运算符
基本的四则算术运算符:加法(+)、减法(-)、乘法(*)、除法(/)
Swift语言默认情况下不允许在数值运算中出现数值溢出的情况,编译器会检测数值溢出并报错。
加法运算符也可以用于字符串的拼接
var abc = "hello," + "world"
print(abc)
2.求余运算符
求余运算(a%b)是计算a除以b之后的余数的运算符。
(1)正整数求余
let a = 5/2 // 除法操作,a = 2
let b = 5%2 // 求余操作,b = 1
(2) 负数求余
求余操作的结果是正是负,由求余操作符左边的被除数决定,被除数是正,则结果为正,反之则反。
let a = -9%2 // a = -1
let b = -9%-2 // b = -1
let c = 9%-2 // c = 1
注意:在Swift3.0中对浮点数求余不能使用%运算符,需要使用tuuncatingRemainder(_:)方法实现,示例代码如下:
let a = (7.5)tuuncatingRemainder(dividingBy:2) // a的值是1.5
在这个示例中,7.5除以2等于3,余数为1.5,所以结果是一个Double类型的数值1.5。
3.复合赋值运算符
复合赋值运算符是由一个算术运算符和一个赋值运算符组合而成,包括“+=” “-=” “*=” “/=” "%="。
var a = 20
let b = 5
a += b // 相当于a = a + b
a -= b // 相当于a = a - b
a *= b // 相当于a = a*b
a /= b // 相当于a = a/b
a %= b // 相当于a = a%b
注意:
1.复合赋值运算符没有返回值,所以let b = (a += 2)这样的表达式是错误的。
2.从Swift2.2开始,去掉了C语言中继承来的自增运算符(++)和自减运算符(--)。
比较运算符
比较运算符用于计算两个操作数之间的数值大小关系。
- 等于(a == b)
- 不等于(a != b)
- 大于 (a>b)
- 小于 (a<b)
- 大于等于 (a>=b)
- 小于等于 (a <= b)
比较运算符的返回值为Bool类型,表示表达式是否成立。
let name = "jack"
if name == "jack" {
print("hello,itcast");
} else {
print("对不起,我不认识你")
}
三目运算符
a ? b:c
a表示问题,可以是表达式、常量或者变量,a必须返回Bool类型。如果a为true,则表达式结果为b,如果a为false,则表达式结果为c。
逻辑运算符
- 逻辑非(!a)
- 逻辑与(a && b)
- 逻辑或 (a || b)
- 组合逻辑判断
逻辑运算符(&&和||)是左结合的,意味着在复合逻辑表达式中优先计算左边的表达式。
&&的优先级高于||
可以加入括号改变各表达式中各操作的优先级,为了让逻辑表达式更易于理解,在使用复合逻辑表达式时可以使用括号来明确优先级。
区间运算符
1.闭区间运算符
a...b
它用于定义一个包含从a到b(包括a和b,b必须大于等于a)的所有值得封闭区间。
for i in 1...5
{
print(i);
}
2.半闭区间运算符
a..<b
它定义一个从a到b但不包括b的区间,之所以称为半闭区间,是因为该区间包含了区间的开始值,但是不包含结束值。
半闭区间用于for-in循环,非常适用于一个从0开始的列表(比如数组)。
let array = ["a","b","c","d","e"];
let count = array.count
for i in 0..<count {
print(array[i])
}