一、常量&变量
1 | 什么是常量和变量 |
二、Swift中数据类型
Swift中的数据类型也有:整型/浮点型/对象类型/结构体/元组类型等等
先了解整型和浮点型
1、整型
有符号
1
2
3
4
5Int8 : 有符号8位整型
Int16 : 有符号16位整型
Int32 : 有符号32位整型
Int64 : 有符号64位整型
Int : 和平台相关(默认,相当于OC的NSInteger)无符号
1
2
3
4
5
6
7
8
9UInt8 : 无符号8位整型
UInt16 : 无符号16位整型
UInt32 : 无符号32位整型
UInt64 : 无符号64位整型
UInt : 和平台相关(常用,相当于OC的NSUInteger)(默认)
获取Int最值:(最大值、最小值)
var minValue = Int.min;
var maxValue = Int.max;
2、浮点型
1 | Float : 32位浮点型 |
3、Swift中在进行基本运算时必须保证类型一致,否则会出错
- 相同类型之间才可以进行运算
- 因为Swift中没有隐式转换
4、数据类型的转化
Int类型转成Double类型:Double(标识符)
Double类型转成Int类型:Int(标识符)
1
2
3
4
5
6
7
8
9
10let a = 10
let b = 3.14
// 错误写法
// let c = a + b
// let c = a * b
// 正确写法
let c = Double(a) + b
let d = a + Int(b)
5、元组
元组是Swift中特有的,OC中没有元组相关类型。
1 | //1.使用元组来定义一组数据 |
三、逻辑分支
1、if分支语句
判断句可以不加()
1 | if score < 60 { |
2、三目运算符
Swift 中的 三目 运算保持了和 OC 一致的风格
1 | let a = 10 |
3、guard的使用
guard是Swift2.0新增的语法
它与if语句非常类似,它设计的目的是提高程序的可读性
guard语句必须带有else语句,它的语法如下:
当条件表达式为true时候跳过else语句中的内容,执行语句组内容
条件表达式为false时候执行else语句中的内容,跳转语句一般是return、break、continue和throw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18guard 条件表达式 else {
// 条换语句
break
}
语句组
例子
func online(age : Int) -> Void {
guard age >= 18 else {
print("回家去")
return
}
print("可以上网")
}
let age = 18
online(age)
---- 可以上网
4、switch分支
基本用法和OC用法一致
不同之处:
switch后可以不跟()
case后可以不跟break(默认会有break)
1 | let sex = 0 |
一个case判断中,可以判断多个值 多个值以 , 隔开
1 | let sex = 0 |
Switch支持多种数据类型
浮点型的switch判断
支持字符串类型判断
switch支持区间判断
开区间:0..<10 表示:0~9,不包括10
闭区间:0…10 表示:0~10
1
2
3
4
5
6
7
8
9
10
11
12
13
14let score = 88
switch score {
case 0..<60:
print("不及格")
case 60..<80:
print("几个")
case 80..<90:
print("良好")
case 90..<100:
print("优秀")
default:
print("满分")
}
四、循环
for in 循环和 下标遍历循环
1 | let arrNuber:[Int] = [100,200,300] |
如果在for循环中不需要用到下标i
1 | for _ in 0..<10 { |
while循环
while的判断句必须有正确的真假,没有非0即真
while后面的()可以省略
1
2
3
4
5
6var count = 0
while count < arrNuber.count {
print(arrNuber[count])
count += 1
}
do while循环
使用repeat关键字来代替了do
1 | var b = 0 |