在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
2 分支语句 当程序面临多个选择,每一个选择都会执行不同的代码块,这个时候就要使用分支语句。常见的分支语句有:
if 选择语句:if... if…else if…elseif…else if是现实生活中:“如果…那么”的映射
if 选择语句 格式:if 判断条件{ 执行语句块 } 【注意】:判断条件不能是普通常量表达式,只能是关系运算或者逻辑运算的表达式,只有判断条件为真的时候,才能执行语句块的内容 在swift语言中,尽量不要在if判断条件出现判断可选类型的变量是否等于nil。将可选类型的值赋给一个常量,然后编译器会自动判断可选类型是否为nil,如果不为nil的话,会自动强制解析,将可选类型值变成具体值,这种形式被称为【可选绑定】 let str = scanf()! if let n = Int(str){ 执行语句块 }
if…else… if 判断条件{ 语句块1 }else{ 语句块2 } 如果判断条件为真,就会执行语句块1的内容整个if语句结束 如果判断条件为假,直接执行语句块2的内容
if…else if …else if 判断条件1{ 语句块1 } else if 判断条件2{ 语句块2 } else{ 语句块3 } 【注意】:else语句可以缺省 当某个if后面的判断条件为真,执行if下面的语句块,然后结束整个if语句,后面的if语句不再判断
switch 多分支语句
switch 适用于轻量级判断,判断条件个数少,并且个数已知 switch 常量{ case 常量1: 语句块1 case 常量2: 语句块2 …… default: 语句块n } 【注意】 case后面的常量必须唯一,不能重复 case后面的常量值如果和switch后面的常量匹配,执行case下面的语句块,然后结束整个switch语句 switch下面的case语句,要包含switch后面长两个涉及到的所有值 case后面的常量都不能和switch后面的常量匹配就执行default后面的语句块内容 swift中的switch语句中的default语句不能缺省 多个常量值共用一个语句块,case后面的每一个常量值用逗号隔开,最后一个常量值后面添加冒号 fallthrough 贯穿,添加贯穿的case语句会继续执行下一个case语句块的内容,不判断下一个case后面的常量是否满足
switch下面的case 可以添加区间也可以添加元组 例子:case后面添加区间 let s = 70 switch s{ case 90…100: print(“A”) case 89..<90: print(“ B”) default: print(“E”) }
case 后面常量是一个元组 let point = (1,2) switch point{ case (0.0):
print(“该点坐标为原点坐标’) case (_,0): print(“该点在X轴上”)//只要元组的第二个值和case后面的第二个值相同,前面的值是多少无所谓,case后面的元组值已经和switch后面的元组值匹配 case(0,_): print(“该点在y轴上”) case (-2…2,-2…2): print(“该点在坐标区间内”) default: print(“打印该点的坐标\(point.0),\(point.1)”) }
case 后面匹配的值可以使用临时变量或者临时常量接收,在case下面的语句块中可以直接访问这个临时变量或者临时常量 ————我们称这种情况为【值绑定】 例子; let score = 60 switch score{ case 90…100: print(“A”) case let grade: //用一个临时常量来接收 print(grade) //可以直接访问这个临时常量 } 【注意】:临时常量已经包含了score能出现的所有可能值,所以值绑定可以对default语句进行缺省 值绑定可以将匹配的值赋给一个临时变量后者临时常量,看业务逻辑,需要修改匹配值就定义成变量,不需要修改就定义成常量
可以使用值绑定判断元组中的数据内容 let paint = (1,1) switch point{ case (0,0): print(“该点坐标在原点”) case(_,0): print(“该点左边在x轴上”) case(var x ,var y): print(“将该点的坐标移动100个单位结果:\(x + 100, y + 100)”) }
对case 后面的常量添加额外的判断条件,判断语句要使用关键字where let num = 15 switch num{ case num where num >= 10 && num <= 15:{ print(“”输入的数字在10-15之间) } case num where num > 15: print(“输入的数字在15之后”) default: print(“小于20”) } |
请发表评论