控制流
这些控制语句在OC的时候经常用到,而且改变不是太大。很容易看懂。
- 循环语句for-in ,while
- if和循环控制语句
- 早退语句 guard else(选修)
- 退出循环语句 breake continue
- switch
for-in
//序列中的每项都参与。for和in之间加一个代替每项的名
let places = ["北京","上海","郑州","天津"]
for place in places {
print(place)
}
var sum = 0
for i in 1...100 {
sum = sum + i
}
sum //5050
//只需循环固定的次数,可以省略项名,比如打印5次相同的文本。 _表示忽略这一项
for _ in 1...10 {
print("学习Swift")
}
while
//while循环执行一系列的操作,知道条件不成立,使用场合:执行次数未知
//1.while 条件 {语句} 比如计算1到100的和
var i = 1
var sum1 = 0
while i <= 100 {
sum1 += i
i += 1
}
sum1 //5050
i //101
var j = 1
while j < 10 {
print("while循环")
j += 1
}
if
let temp = 23
if temp > 35 {
print("开空调")
} else {
print("不开")
}
for i in 1...10 {
if i == 3 {
break
}
print(i)
}
switch
let temp = 23
switch temp {
case 35...40:
print("天气非常炎热,强力制冷启动");
case 25...34:
print("天气不算太热,制冷启动");
case 19...24:
print("除湿模式");
default:
print("室外已经超过本空调的控制范围");
}
//元组匹配(选修):如某坐标(含x和y两个变量)所在象限判断
let temp = (0,2)
switch temp {
case (0,0):
print("原点")
case (_,0):
print("坐标在X轴上")
case (0,_):
print("坐标在Y轴上")
case (-2...2,-2...2):
print("坐标在2*2范围内")
default:
break
}
三目运算符
question ? answer1 : answer2
如果 question为真,则answer1 ,如果question为假, 则answer2.
枚举(enumeration)
计数,列举(有限的情况);详细叙述之意。增强的,更抽象的数字类型
非常强大,与switch语句结合使用,天生一对
//定义与使用
//给定一个名称,然后把每一种情况列举出来
enum Weather {
case sunny
case cloudy
case rainy
case snow
}
let todayWeather = Weather.cloudy
switch todayWeather {
case Weather.sunny:
print("今天天气晴朗")
case Weather.cloudy:
print("今天天气多云")
case Weather.rainy:
print("今天天气下雨")
case Weather.snow:
print("今天天气下雪")
}
//附加值(选修):每一种类型都可附加一个或多个值,形式是元组
enum 精确天气 {
case 晴(Int,Int,String)
case 霾(String,Int)
}
let 北京天气 = 精确天气.晴(30, 30, "晴天")
let 上海天气 = 精确天气.霾("PM10", 100)
switch 北京天气 {
case .晴(let uvi,let li,let desc):
print("紫外线指数:",uvi,"防晒指数:",li,"天蓝程度:",desc)
case .霾(let cat, let li):
print("雾霾颗粒类型:",cat,"指数:",li)
}