掌握
- 基本的逻辑分支结构
- 可选项的三种判断方式
- ??,替换 nil 值,优先级低
- if let,{} 内有效
- guard let else, {} 后有效
- swift 可以对任意类型的值进行分支
if
- Swift 中没有 C 语言中的非零即真概念
- 在逻辑判断时必须显示地指明具体的判断条件 true / false
- if 语句条件的 ()可以省略但是 {} 不能省略
func demo1(num: Int) -> () {
if num > 10 {
print("大 \(num)") }
else {
print("小 \(num)") }
}
三目运算
- ?? 是一个简单的三目运算
- 如果有值,就是原来的值
- 如果没有值,就用 ?? 后面的值代替
一定要注意括号 '( )' 的使用
if let / var
let oName: String? = "孙悟空"
let oAge: Int? = 100
//if let 连用,判断对象的值是否为 nil ,{}内有值,不需要解包
//if var 连用,可在 {} 内对值进行修改
if let name = oName,
let age = oAge {
//进入分支后, name 和 age 一定有值,不需要进行解包
print(name + String(age))
// name 和 age 的作用域只在 {}内
}else{
print("name 或 age 没有值")
}
guard let
- 正好和 if let 相反,是苹果在 Swift 2.0 之后推出的
- 在程序编写时,条件检测之后的代码相对是比较复杂的
- 使用 guard 的好处
- 能够判断每一个值
- 在真正的代码逻辑部分,省略了一层嵌套
let oName: String? = "孙悟空"
let oAge: Int? = 100
guard let name = oName,
let age = oAge else {
print("name 或者 age 为nil")
}
print(name + String(age))
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
}
网友评论