Swift基础入门知识学习(8)-循环-讲给你懂

Swift基础入门知识学习(7)-字典-讲给你懂


有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。

循环是一个非常神奇的事情:有每秒重复一些简单任务数十亿次的能力。

至于循环些什么内容,就取决于你。你可能要添加一些数字,也可能需要读取一些传感器数据,或者可以每秒重绘屏幕120次。

循环语句允许我们多次执行一个语句或语句组。Swift 提供了可以循环执行任务的for-in和while循环,以及根据条件选择执行不同程式码分支的if和switch语句,还有控制流程跳转到其他程式码的break和continue语句。

For-in 循环

理解难度
★★★☆☆
实用程度
★★★☆☆

Swift提供了for-in循环和while循环,两者都是常用的。但是你应该使用哪种呢?

两种循环主要区别在于,for-in循环通常与有限序列一起使用:例如,我们循环浏览数字1到10,或循环数组中的项目。另一方面,while循环是为了循环到任何任意条件变成false为止。

使用for-in遍历一个集合内的所有元素,像是一个数字区间、数组、字典中的值或是字符串内的字元,例子如下:

// 一个一到三的闭区间
for index in 1...3 {
    
    
    print(index)
}
// 会依序打印出:
// 1
// 2
// 3

上述程式内的index不用做声明的动作,在每次遍历开始时会被自动指派值,预设是一个常量。

index可以自行按需要标上更清楚易懂的名词。

for index in 1...5 {
    
    
    print("\(index) 乘于 5 为:\(index * 5)")
}

另外如果只是要纯粹的循环,不需要用到区间内的每一个值,可以用下底线_来代替。

也就是你实际上不需要当前正在读取的“值”(也就是上面的 index)),只是要取当前循环的“次数”来做运算。这个时候就是用下底线的时候了,省的命名,反正用不到。

let base = 2
var total = 1
for _ in 1...3 {
    
    
    total *= base
}

// 因为循环了三次 所以乘了三次 打印出:8
print(total)

使用for-in遍历一个数组(array)或是字典(dictionary)。
遍历字典时,会使用元组(tuple)来分别表示键与值,例子如下:

let arr = ["Apple", "Book", "Cat"]
for 打印arr in arr {
    
    
    print(打印arr)
}
// 依序打印出:
// Apple
// Book
// Cat

let dict = ["Apple":12, "Book":3, "Cat":5]
for (key, values) in dict {
    
    
    print("\(key) : \(values)")
}
// 打印出:(因为字典没有顺序 所以不一定是这样的顺序)
// Apple : 12
// Book : 3
// Cat : 5

While 循环

理解难度
★★★★☆
实用程度
★★☆☆☆

Swift 也提供两种while循环方式:while循环及repeat-while循环,两者都是循环地执行程式直到条件表达式返回false,差别在于,后者一开始在检查条件表达式之前,一定会先执行一次内部程式。

while循环方式意味着我们可以重复相同的代码,直到:

  • 用户要求停止
  • 服务器告诉我们停止
  • 已经找到了需要的答案
  • 已经生成了足够的数据

这就是while循环派上用场的地方:可以一直保持循环,直到我们准备好退出循环。

while 循环语法格式如下:

while 条件表达式 {
    
    
    每次循环执行的程式
}

while 会循环的执行程式直到条件表达式返回false,例子如下:

var n = 2
while n < 20 {
    
    
    n = n * 2
}

// 打印出:32
print(n)

上述例子的条件表达式为n < 20,每次都会将一开始指派为 2 的 n 乘以 2 ,持续循环直到 n 不再小于 20 ,最后一次 n 为 32 ,条件表达式会返回 false ,也就会打印出 32 ,结束这个 while 的循环。

var index = 10

while index < 20 
{
    
    
   print( "index 的值为 \(index)")
   index = index + 1
}

退出循环

Swift的break关键字允许我们立即退出循环,无论我们说的是哪种循环都适用。大部分的情况可能不需要这个 break,因为你正在循环数组中的项目并想处理它们,或者因为你从1到10计数,并希望处理所有这些值。

然而,有时你确实想提早结束你的循环。例如,如果你有一系列分数,并且你想弄清楚玩家在没有得到0的情况下取得了多少分,你可以写以下内容:

let scores = [2, 4, 6, 3, 0, 5, 2]
var count = 0

for score in scores {
    
    
    if score == 0 {
    
    
        break
    }

    count += 1
}

print("你玩了 \(count) 次,才破了蛋")

想想看,玩家玩几次才得到分数呢?
请添加图片描述

Repeat-while循环

理解难度
★★★★☆
实用程度
★★☆☆☆

Swift repeat while 循环不像 for-in 和 while 循环在循环体开始执行前先判断条件语句,而是在循环执行结束时判断条件是否符合。

repeat-while 循环格式如下:

repeat {
    
    
    每次循环执行的程式
} while 条件表达式

repeat-while 会先执行一次程式,再检查条件表达式,接着循环地执行程式直到条件表达式返回false。

var m = 512
repeat {
    
    
    m = m * 2
} while m < 100

// 打印出:1024
print(m)
// 不论如何 都会先执行一次程式 所以 m 会先乘一次 2 为 1024
// 接着检查条件表达式 会返回 false 即结束这个循环
var index = 15

repeat{
    
    
    print( "index 的值为 \(index)")
    index = index + 1
}while index < 20

想想看,打印出来的结果是什么?
在这里插入图片描述
高效阅读-事半功倍读书法-重点笔记-不长,都是干货

Guess you like

Origin blog.csdn.net/weixin_42385177/article/details/121482320