文章摘要
GPT 4
此内容根据文章生成,并经过人工审核,仅用于文章内容的解释与总结

if

1
2
3
if someCondition {
print("Do something")
}

条件括号可加可不加。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//示例
let age = 18
if age >= 18 {
print("你已经长大了,快告诉全世界")
}

var numbers = [1,2,3]
numbers.append(4)
if numbers.count > 3 {
numbers.remove(at: 0)
}
print(numbers)

let country = "Korean"
if country == "Japan" {
print("Country :\(country)")
}
if country.isEmpty {
print("Country is null")
}

这里有一个小知识点,判断字符串是否为空建议使用 .isEmpty ,而不是 .count > 0,因为字符串 String 不支持随机访问(RandomAccessCollection),所以 .count 计算个数需要 O(n) 的时间复杂度,而 isEmpty 是非常快速的执行过程。

Java里 .length() 是直接拿属性值length,时间复杂度是O(1),没这么多B事。

switch

1
2
3
4
5
6
7
8
9
10
11
12
13
let place = "杭州"

switch place {
case "南京":
print("南京盐水鸭")
case "北京":
print("北京烤鸭")
case "洛阳":
print("洛阳牛肉汤")
default:
print("你是哪里的?")
}
//输出:你是哪里的?

switch的fallthrough

Swift fallthrough 语句让 case 之后的语句会按顺序继续运行,且不论条件是否满足都会执行。

跟Java有区别的,Java是不加会继续运行,停下来要加 break。

三元运算符

1
2
3
4
5
let names = ["vae","jay","JJ"]
let crewCount = names.isEmpty ? "No one" : "\(names.count) people"
print(crewCount)
//输出
//3 people

没有什么特别的地方,都一样。

循环

1
2
3
4
5
6
7
8
9
10
11
12
13
14
let platforms = ["iOS","macOS","tvOS","watchOS"]

for os in platforms {
print("Swift works great on \(os)")
}

//item可以是任何未定义的名字
for anyName in platforms {
print("Swift works great on \(anyName)")
}

for i in 1...12 {
print(i)
}

Java里没有 上面 1…12 这种表达式,scala有,可以理解为一种语法糖,swift这边也是,开闭可以用 1..<12 这种形式,学名叫 区间运算符(Range Operators)

随机数

随机数

跳出循环

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//找出图片
let fileNames = ["me.jpg","json.txt","work.jpg"]

for fileName in fileNames {
if !fileName.hasSuffix(".jpg") {
continue
}
print("找到图片:\(fileName)")
}

//计算公倍数
let number1 = 4
let number2 = 14
var multiples = [Int]()

for i in 1...100_000{
if i.isMultiple(of: number1) && i.isMultiple(of: number2){
multiples.append(i)
if multiples.count == 10 {
break
}
}
}
print(multiples)

continue跳出当前循环 break中断所有循环,没有不同。

总结

  • 我们使用 if、else 和 else if 语句来检查条件。
  • 您可以使用 || 和 && 组合条件。
  • switch 语句比大量使用 if 和 else if 更容易,而且 Swift 会检查它们是否详尽。
  • 三元条件运算符让我们可以检查 WTF:什么?、True、False。
  • for 循环让我们可以循环遍历数组、集合、字典和范围。
  • while 循环创建持续运行的循环,直到条件为假。
  • 我们可以分别使用 continue 或 break 跳过循环项。

课后作业

您的目标是从 1 循环到 100,并针对每个数字进行循环。

  • 如果它是 3 的倍数,则打印“Fizz”
  • 如果它是 5 的倍数,则打印“Buzz”。
  • 如果它是 3 和 5 的倍数,则打印“FizzBuzz”
  • 否则,只打印数字
1
2
3
4
5
6
7
8
9
10
11
for i in 1...100 {
if i.isMultiple(of: 3) && i.isMultiple(of: 5){
print("FizzBuzz")
}else if i.isMultiple(of: 3){
print("Fizz")
}else if i.isMultiple(of: 5){
print("Buzz")
}else{
print(i)
}
}