用来检查和运算各种条件和逻辑的组合,控制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("欢迎乘坐本公司出租车")
}
打的()