Swift 流程控制 ②

2020-07-23  本文已影响0人  Aliv丶Zz

1 if-else

let age = 31

if age > 30 {
    print("age > 30");
}else if age>20 {
    print("age>20");
}

2 while

var num = 10
while num > 0 {
    num -= 1
    print("age:\(num)")
}//打印内容为: 9 8 7 6 5 4 3 2 1 0

3 For - 区间运算符用在数组上

区间类型:
let range1: ClosedRange<Int> = 1...3
let range2: Range = 1..<3
let range3: PartialRangeThrough<Int> = ...5

let name = ["Alex","Brom","Crol","Drop"]
for i in 0...3{
  print("\(name[i])")
}//Alex  Brom  Crol  Drop

for i in range2{
    print(i)
}// 1 2

for i in name[1...]{
    print(i)
}//Brom  Crol  Drop

let strRange = "aa"..."zz"// aa ab  ac ...... yz zz
let bl = strRange.contains("cc")
print("bl--- \(bl)")  //bl--- true

let hours = 13
let interval = 2
for i in stride(from: 2, to: hours, by: interval) {
    print("i = \(i)")
}//i = 2  i = 4  i = 6  i = 8  i = 10  i = 12

4 switch

使用时注意事项:
var num = 2
switch num {
    case 1:
        print("num is 1")
        fallthrough
    case 2:
        print("num is 2")
    case 3:
        print("num is 3")
    default:
        break
}
/*num is 1
num is 2*/

enum Answer {
    case right, wrong
}
let answer:Answer = Answer.right
switch answer {
    case Answer.right:
        print("answer is right")
        fallthrough
    case .wrong:
        print("answer is wrong")
}
/* 这里case已经包含枚举里所有类型,所以可以不用使用default。
并且已经确认answer 为 Answer类型,所以也可以直接 .wrong*/

var str = "Jack"
switch str {
    case "Jack":
        fallthrough
    case "Uzi":
        print("A Good ADC")
    default:
        break
}/* 这里使用的fallthrough类似于OC中的
case 1:
case 2:
*/

//值绑定
let point = (2,0)
switch point {
    case (let x , 0):
        print("x = \(x)")
    case (0 , let y):
        print("y = \(y)")
    default:
        break
}


5 where

let point = (2,2)
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("(\(x) , \(y)) just a point")
} //x == y

var wNum = [1, -2, 5 , -7 ]
for obj in wNum where obj>0{
    print(obj);
}// 1  5 

上一篇 下一篇

猜你喜欢

热点阅读