(三)swift支持的流程结构
2016-06-27 本文已影响32人
IIronMan
一、swift支持的流程结构
1、循环结构
for、for-in、while、do-while
2、选择结构
if、switch
3、跟C语言对比
用法基本一样 for、while、do-while、if
只需关注for-in和switch
二、for-in和范围运算符
1、for i in 1...3{
print(i)
}
//按顺序从范围中取值赋值给i,每取一次值,就执行一次循环体
2、如果需要用到范围的值,可以使用下划线_进行忽略,节省内存
三、switch
1、格式
let grade = "B"
switch(grade){
case "A":
print("优秀生")
case "B":
print("中等生")
case "C":
print("及格生")
default:
print("未知")
}
2、switch语句在swift和C中的区别
1)case
case和switch()后面可以是任意类型
2)break
在C语言中,如果case的结尾没有break,j就会接着执行下一个case
在swift语句中,不需要再每一个case后面增加一个break,执行完case对应的代码后默认会自动退出switch语句
3)default不能省
switch要保证处理所有可能的情况,不然编译器直接报错
4)每一个case后面必须有可执行的语句
3、case的多条件匹配
一个case后面可以填写多个匹配条件,条件之间用逗号隔开
4、case的范围匹配
case后面添加90...1000
5、case还可以用来匹配元组
let point = (1,1)
switch point{
case (0,0):
print("圆点上)
case (_,0)://_能匹配任何值
print("这个点在x轴上")
case (-2...2,-2...2):
print("这个点在矩形框内")
default:
print("这个点在其他位置")
}
6、数值绑定
在case匹配的同时,可以将swift中的值绑定给一个特定的变量或者常量,以便在后面的语句中使用
let point = (10,1)
switch(point){
case let (x,0):
print("\(x)")
case let (0,y):
print("(y)")
case let (x,y):
print("\(x) \(y)")
}
7、swich语句可以使用where来增加判断的条件
let point = (10,10)
switch(point){
case let (x,y) where x == y :
print("在x=y那条线")
case let (x,y) where x == -y:
print("在x=-y那条线")
case let (x,y):
print("未知")
}
8、fallthrough
执行当前case后,会接着执行fallthrogh后面的case或者default语句
let num = 20
var str = "\(num)是个"
switch num{
case 0...50:
str += "0~50之间的"
fallthrough
default :
str += "整数"
}