在Swift中出现条件的可能性:Xcode

问题描述 投票:-2回答:2

我对Xcode很新,很快就很抱歉,如果这是一个糟糕的描述。有没有一种方法可以让您的条件发生,而不是在满足条件的情况下100%的时间发生,它只会在满足条件的50%时间内发生?例如,

如果(x = 10){只有50%的时间会发生某种情况或者只有发生的可能性}

所有反馈都非常感谢!

xcode swift if-statement conditional percentage
2个回答
2
投票

您可以使用arc4random_uniform创建只读计算属性以生成随机数,并根据其结果返回布尔值。如果生成的数字等于1,则返回true,如果等于0,则返回false。结合if条件,只有当随机数等于1(true)时,才可以在括号内执行代码。

let randomZeroOne = arc4random_uniform(2)

if randomZeroOne == 1 {
    print(randomZeroOne) // do this
} else {
    print(randomZeroOne) // do that
}

print(randomZeroOne == 1 ? "This" : "That")

使用这种方法,你可以得到类似下面这样的例子:

var trueFalse: Bool {
    return arc4random_uniform(2) == 1
}

print(trueFalse) // false
print(trueFalse) // true
print(trueFalse) // false


if trueFalse {
    // do that 50% odds
}

0
投票

OP并没有给出多少,但@Leo做对了

if x == 10 {
    arc4random_uniform(2) == 0 ? dothis() : dothat()
}

Apple应该重命名该方法并摆脱伪方法。

© www.soinside.com 2019 - 2024. All rights reserved.