From 6df15c5e4ed7dd68c0f09fe9b4b70ba3adb52ac4 Mon Sep 17 00:00:00 2001 From: jiulinxiri Date: Fri, 3 Dec 2021 16:18:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=81=E7=A8=8B=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Contents.swift | 190 ++++++++++++++++++ SwiftStudy.playground/contents.xcplayground | 1 + .../UserInterfaceState.xcuserstate | Bin 23021 -> 24527 bytes 3 files changed, 191 insertions(+) create mode 100644 SwiftStudy.playground/Pages/03 流程控制.xcplaygroundpage/Contents.swift diff --git a/SwiftStudy.playground/Pages/03 流程控制.xcplaygroundpage/Contents.swift b/SwiftStudy.playground/Pages/03 流程控制.xcplaygroundpage/Contents.swift new file mode 100644 index 0000000..10bcd21 --- /dev/null +++ b/SwiftStudy.playground/Pages/03 流程控制.xcplaygroundpage/Contents.swift @@ -0,0 +1,190 @@ +//: [Previous](@previous) + +//: ## 区间运算符 + +//: ### 闭区间运算符 +/*: + 闭区间运算符: + a...b : a <= 取值 <= b + */ + +let names = ["Anna", "Alex", "Brian", "Jack"] +for i in 0...3 { + print(names[i]) +} + +let a = 1 +var b = 3 +for i in a...b { + print(names[i]) +} + +let range = 1...3 +for i in range { + print(names[i]) +} + + + +// i默认是let,有时需要声明为var +for var i in 1...3 { + // i的值可以发生变化 + i += 5 + print(i) +} + +// 用不上变量,可以用_进行忽略 +for _ in 1...3 { + print("123456") +} + +//: ### 半开区间运算符 +/*: + 半开区间运算符 + a.. = 1...3 +// 半开区间 Range +let range2: Range = 1..<3 +// 单侧区间 PartialRangeThrough +let range3: PartialRangeThrough = ...5 + + +//: ### 带间隔的区间值 +// 使用函数stride +for tickMark in stride(from: 4, to: 11, by: 2) { + print(tickMark) +} + + +//: ## switch +/*: + switch注意点 + - switch必须保证能处理所有的情况 + - 能处理所有情况的下,可以省略default + - switch 也支持Character、String类型 + - switch 支持区间匹配以及元组匹配 + */ + +// 默认可以不写break,并不会贯穿到后面的条件 +var num = 1 +switch num { +case 1: + print("number is 1") +case 2: + print("number is 2") +default: + print("number is other") +} + +// 使用fallthrough可以实现贯穿效果 +var number = 1 +switch number { +case 1: + print("number is 1") + fallthrough +case 2: + print("number is 2") +default: + print("number is other") +} + +//: #### 区间匹配 +let count = 62 +switch count { +case 0: + print("none") +case 1..<5: + print ("a few") +case 5..<12: + print("several") +case 12..<100: + print("dozens of") +case 100..<1000: + print("hundreds of") +default: + print("many") +} // dozens of + + + + +//: #### 元组匹配 +// 可以使用下划线_ 忽略某个值 +let point = (1, 1) +switch point { +case (0, 0): + print("the origin") +case (_, 0): + print ("on the x-axis") +case (0, _): + print("on the y-axis") +case (-2...2, -2...2): + print("inside the box") +default: + print( "outside of the box") +} + +//: ### 值绑定 +// 必要时 let 可以换为 var +let point1 = (2, 0) +switch point1 { +case (let x, 0): + print("on the x-axis with a x value of \(x)") +case (0, let y): + print("on the y-axis with a y value of \(y)") +case let(x, y): + print("somewhere else at (\(x), \(y))") +} + +//: ### where +// 1. 用在case的后边 +let point2 = (1, -1) +switch point2 { +case let(x, y) where x == y: + print("on the line x == y") +case let(x, y) where x == -y: + print("on the line x == -y") +case let(x, y): + print("somewhere else at (\(x), \(y))") +} + +//2. 对数据进行过虑 +var numbers = [10, 20, 30, -10, -30] +var sum = 0 +for num in numbers where num > 0 { + sum += num; +} +print(sum) + +//: ### 标签语句 +// 标签语句是 +// 标签: 代码 +outer: for i in 1...4 { + for k in 1...4 { + if k == 3 { + continue outer + } + + if i == 3 { + break outer + } + + print("i == \(i), k == \(k)") + } +} + + +//: [Next](@next) diff --git a/SwiftStudy.playground/contents.xcplayground b/SwiftStudy.playground/contents.xcplayground index 96638d2..9e18224 100644 --- a/SwiftStudy.playground/contents.xcplayground +++ b/SwiftStudy.playground/contents.xcplayground @@ -3,5 +3,6 @@ + \ No newline at end of file diff --git a/SwiftStudy.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate b/SwiftStudy.playground/playground.xcworkspace/xcuserdata/jiulinxiri.xcuserdatad/UserInterfaceState.xcuserstate index 386bfc081d99981444971a6059e228190276b7c2..f5751322cc7572490352397e749b237fcbf27371 100644 GIT binary patch delta 11457 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 delta 10897 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 M*8b0?ch?*L54DHzw*UYD