在 Swift 中,repeat 是一种循环结构,通常与 while 搭配使用。它的语法如下:
repeat {
// 循环体
} while (条件)
特点
1、至少执行一次:
repeat 循环先执行循环体,再检查条件。这意味着即使条件一开始为 false,循环体也会执行一次。
2、适用场景:
当需要先执行某些操作,然后根据条件决定是否继续循环时,repeat 非常适用。
用法示例
基础用法
var counter = 1
repeat {
print("Counter is \(counter)")
counter += 1
} while counter <= 5
输出:
Counter is 1
Counter is 2
Counter is 3
Counter is 4
Counter is 5
避免随机数重复
下面是一个更实际的例子,生成一个随机数直到它与指定的值不同为止:
var lastRandomNumber: Int? = nil
var newRandomNumber: Int
repeat {
newRandomNumber = Int.random(in: 1...10)
} while newRandomNumber == lastRandomNumber
print("Generated unique random number: \(newRandomNumber)")
lastRandomNumber = newRandomNumber
需要记录最近的几个随机数并避免重复,结合 repeat 循环和队列可以实现:
var lastRandomIndexes: [Int] = [] // 保存最近的随机数
let maxHistorySize = 3 // 历史记录长度
var newRandomNumber: Int
repeat {
newRandomNumber = Int.random(in: 1...10)
} while lastRandomIndexes.contains(newRandomNumber) // 避免重复
lastRandomIndexes.append(newRandomNumber)
if lastRandomIndexes.count > maxHistorySize {
lastRandomIndexes.removeFirst() // 超出长度限制时移除最旧的
}