Swift 控制流

用来检查和运算各种条件和逻辑的组合,控制APP的运行流向
循环语句 for-in,while
if和循环控制语句
早退语句 guard else
退出循环语句 break continue
switch

// for in 循环
/*
 执行固定次数的操作,或操作一个序列(如数组)中的每一项
 1.序列中的每项都参与,for in之间加一个代替每项的名
 2.只循环固定次数,可以省略项名
 */

let  places = ["beijing","shanghai","guangzhou"]

for place in places {
    print(place)
}

var sum : Int = 0
for i in 1...100{
    sum += i
}
sum


for _ in 1...10{
    print("学习Swift")
}

// while 循环
/*
 while循环执行一系列操作,直到条件不成立,使用场合:执行次数未知
 */
var i = 1
var z = 0
while i<=100 {
    z += i
    i += 1
}
z

var j = 1
while j<10 {
    print("while循环示例")
    j += 1
}

// if else 分支处理
var temp = 23
if temp > 35 {
    print("开空调")
}else{
    print("不用开空调");
}

var money = false
if money {
    print("买车买房");
}else{
    print("注定孤身");
}

for k in 1...6 {
    if k == 3 {
      break
    }
    print(k)
}

for k in 1...6 {
    if k == 3 {
        continue
    }
    print(k)
}

// Switch 
var temp2 = 30
switch temp2 {
case 35...40:
    print("天气非常炎热,强力制冷启动")
case 25...34:
    print("天气不算太热,制冷启动")
case 19...24:
    print("除湿模式")
case 0...18:
    print("制暖模式")
default:
    print("室外温度已超过本空调的控制范围")
}

// 元祖匹配:如某坐标(含x和y两个变量)所在象限判断
let 坐标1 = (0,2)
switch 坐标1 {
case (0,0):
    print("在原点")
case (_,0):
    print("在X轴")
case (0,_):
    print("在Y轴")
case (-2...2,-2...2):
    print("坐标在2*2范围内")
    
default:
    break
}

// 值绑定:一个case里可以绑定临时变量,以便在执行语句中使用
let 坐标2 = (0,12)
switch 坐标2 {
case (0,0):
    print("原点")
case (let x,0):
    print("坐标在X轴上:",x)
case (0,let y):
    print("坐标在Y轴上:",y)
case (let x,let y):
    print(x,y)

}


/* 早退语句:在必需条件不满足的早期阶段退出执行,语句关键字 guard,与if相似,属于条件强调意味很浓的语句,guard let 与 if let相似,用于可选类型。guard有助于提升代码可读性
 */

var hasKey : Bool = true
var credit : Int? = 5
func 打的(){
    guard !hasKey else {
        print("开车回去")
        return
    }
    guard let mycredit = credit , mycredit >= 6 else {
        print("出租车信誉不好,不打的")
        return
    }
    print("欢迎乘坐本公司出租车")
}

打的()

你可能感兴趣的:(Swift 控制流)