swift - 如何在 Swift 中比较随机数

标签 swift random arc4random

我是编程和使用 Swift 中的 arc4random_uniform() 函数的初学者。到目前为止,我正在编写的程序生成一个由 UIButton 重新生成的 1-10 之间的随机数。但是,如果下一个生成的数字大于当前保存的数字,我希望初始化为随机数的变量“highest”进行更新。例如,随机数是 6,存储在最高值中,如果下一个数字是 8,最高值将变为 8。我不知道如何处理这个问题。我已将 UIButton 连接到 IBAction 函数并具有以下代码:

    var randomValue = arc4random_uniform(11) + 1
    highest = Int(randomValue)

    if (Int(randomValue) < highest) {
        // Don’t know what to do
    }

最佳答案

初始化最高为0

每次生成新的随机数时,将最高的值替换为两个数字中较大的一个

highest = max(highest, randomValue)

max() 函数是 Swift 标准库的一部分,它返回传入的两个值中较大的一个。

编辑添加

这是一个更详细地展示这一点的 Playground ,包括类型的转换:

var highest: Int = 0

func random() -> Int {
    let r = arc4random_uniform(10) + 1
    return Int(r)
}

var randomValue = random()
highest = max(highest, randomValue)

您可以看到多次调用始终保持最高值。

enter image description here

关于swift - 如何在 Swift 中比较随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32861274/

相关文章:

cocoa arc4random OS X 10.6

ios - UICollectionView:ObjC Apple 示例代码到 Swift 的转换(找不到成员)

ios - 丰富的本地通知

ios - 如何在文本字段 swift ios 中输入 4 个字母后添加功能

c++ - std::uniform_real_distribution 包含范围

javascript - 从数组 Javascript 生成随机元素组

swift - 在具有重复随机结果的 AKSequencer 中调用随机 AKPlayer

ios - 呈现 UIAlertController 时出现 CGContext 错误

c++ - 使用 for 循环和 rand 生成 100 个随机数并打印出最小值和最大值

ios - NSMutableArray 存储没有重复的 int