Swift--控制流及枚举--04

控制流

这些控制语句在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)

}

你可能感兴趣的:(Swift--控制流及枚举--04)