1. if
- Swift 中没有 C 语言中的非零即真概念
- 在逻辑判断时必须显示地指明具体的判断条件 true/false
- if 语句条件的 () 可以省略
- {} 不能省略
let num = 200
if num < 10 {
print("比 10 小")
} else if num > 100 {
print("比 100 大")
} else {
print("10 ~ 100 之间的数字")
}
2. 三目运算
Swift 中的 三目, 运算保持了和 OC 一致的风格
var a = 10
var b = 20
let c = a > b ? a : b
print(c)
3. Switch
- switch 不再局限于整数,switch 可以针对任意数据类型进行判断
- 不再需要 break
- 每一个 case后面必须有可以执行的语句
- 要保证处理所有可能的情况,不然编译器直接报错,不处理的条件可以放在 default 分支中
- 每一个 case 中定义的变量仅在当前 case 中有效,而 OC 中需要使用 {}
let score = "优"
switch score {
case "优":
let name = "学生"
print(name + "80~100分")
case "良": print("70~80分")
case "中": print("60~70分")
case "差": print("不及格")
default: break
}
4 switch 中同样能够赋值和使用 where子句
let point = CGPoint(x: 10, y: 10)
switch point {
case let p where p.x == 0 && p.y == 0:
print("中心点")
case let p where p.x == 0:
print("Y轴")
case let p where p.y == 0:
print("X轴")
case let p where abs(p.x) == abs(p.y):
print("对角线")
default:
print("其他")
}
如果只希望进行条件判断,赋值部分可以省略
switch score {
case _ where score > 80: print("优")
case _ where score > 60: print("及格")
default:
print("其他")
}
5. for 循环
5.1 OC循环
var sum = 0
for var i = 0; i < 10; i++ {
sum += i
}
print(sum)
5.2 Swift
//for-in,0..<10 表示从0到9
sum = 0
for i in 0..<10 {
sum += i
}
print(sum)
5.3 范围 0...10 表示从0到10
sum = 0
for i in 0...10 {
sum += i
}
print(sum)
5.4 省略下标
-
能够匹配任意类型
-
表示忽略对应位置的值
for _ in 0...10 { print("hello") }