第三章、语句和表达式
3.1语句
swift中语句可以加;也可以不加
3.2运算符与表达式
3.2.1常用术语-元
元表示运算符所使用的目标数值个数(操作数)
分类:一元运算符、二元运算符、三元运算符
3.2.2赋值运算符
=赋值运算符
var a=1赋值表达式
3.2.3算数运算符
标准算数运算符:+ - */
+运算符可以用来连接字符串
注意:在进行除法运算时
当两个操作数为整数,所得结果为整数
当两个操作数为浮点数,所得结果为浮点数
3.2.4取余运算
符号:%
注意:
结果符号取决于被除数
两个操作数可以为整数,也可以为浮点数
3.2.5自增、自减
++ —
分为:先增、先减、后增、后减
3.2.6一元减运算符
取反-
3.2.7一元加运算符
+基本没用
3.2.8位运算符
一个字节8位
位运算符
&与都为1,则为1
|或有1,则为1
^异或相同为0,不同为1
~取反0变1,1变0
<<左移将一个数的各二进制位全部左移N位,右补0
>>右移将一个数的各二进制位全部右移N位,对符号位,高位补0
3.2.9溢出运算符
开发者有意进行溢出操作使用
&+溢出加法
&-溢出减法
&*溢出乘法
&/溢出除法
&%溢出取余
值的上溢出:当一个值达到可以承载的最大值后,如果进行加或者乘运算导致的溢出
var a=UInt8.max
a=a&+1
值的下溢出:当一个值达到可以承载的最小值后,如果进行减运算导致的溢出
var a=UInt8.min
a=a&-1
除0溢出:除以0产生的溢出
var x=0
var y=10&/x
3.2.10比较运算符
<<=
>>=
==!=
3.3.11三元运算符
表达式1?表达式2:表达式3
表达式1真输出表达式2,否则表达式3
3.3.12逻辑运算符
&&||!
3.3.13范围运算符
封闭范围运算符
语法:(操作数1...操作数2)
说明:加括号与不加括号都可以
举例:
import Foundation
for index in 1...5{
print("\(index)times is \(index)")
}
半封闭运算符..<
var names=["a","b","c"]
var count=names.count
for i in 0..
print("第\(i)个元素:\(names[i])")
}
3.3.14复合赋值运算符
*=a*=ba=a*b
/=a/=ba=a/b
%=a%=ba=a%b
+=a+=ba=a+b
-=a-=ba=a-b
<<=a<<=ba=a<
>>=a>>=ba=a>>b
&=a&=ba=a&b
^=a^=ba=a^b
|=a|=ba=a|b
3.3.15求字节运算符
说明:计算数据类型所占的字节数的运算符
语法:
MemoryLayout<类型>.size
MemoryLayout.size(ofValue:变量名)
举例:
import Foundation
let a:Int=10
let lenb=MemoryLayout.size
let len=MemoryLayout.size(ofValue:a)
print(len)
3.3.16强制解析
说明:可选类型,不可直接进行运算,需要用!强制解析
举例:
import Foundation
var value:Int?=5
var a=value!-2
print(a)
3.3.17类型转换
注意:没有隐式转换
语法:类型(变量/常量)
import Foundation
let a:UInt8=2
let b:UInt16=2000
let c=UInt16(a)+b
print(c)