swift - 如何从 arc4random 中排除特定整数

标签 swift arc4random

我想用 arc4random_uniform() 得到一个随机数,但不包括像这样的数组中的数字

var numbersArray = [8,15,10,3,7]
var randomNumber = arc4random_uniform(20)

如果 arc4random_uniform() 给我 numbersArray 中的任何数字,我希望它得到一个不是来自 numbersArray 的新数字

我试过了

func getRandomGroup() -> Int {
    for numbers in numbersArray {
        if numbers == randomNumber {
             var randomNumber = arc4random_uniform(20)
        }
    }
    return randomNumber
}

但是好像没有用

最佳答案

swift 2.0

var numbersArray = [8,15,10,3,7]
var randomNumber : Int
repeat {
    randomNumber = Int(arc4random_uniform(20))
} while numbersArray.contains(randomNumber) 
print(randomNumber)

在 Swift 1.x 中它是 do while

关于swift - 如何从 arc4random 中排除特定整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31211775/

相关文章:

ios - 即使重复,如何获取特定子字符串的范围

ios - 具有 Swift 包管理器依赖项的项目的 Github 操作

ios - 理解 iOS Swift 2 中的随机数

objective-c - Arc4random 模偏置

objective-c - 非重复 arc4random_uniform

ios - UITableView是否滚动到顶部?

arrays - 数组上的嵌套 for 循环

ios - Sprite Kit - 节点离开屏幕的通知程序

ios - 新的 arc4random()%x;与以前的号码不同

range - 如何在 arc4random_uniform() 的范围内生成随机数?